Skip to content
This repository has been archived by the owner on Dec 3, 2019. It is now read-only.

Python 3 support #4599

Open
oprypin opened this issue Oct 31, 2018 · 3 comments
Open

Python 3 support #4599

oprypin opened this issue Oct 31, 2018 · 3 comments

Comments

@oprypin
Copy link
Contributor

oprypin commented Oct 31, 2018

Catapult relies on Python 2 but it's nearing end-of-life in the year 2020.
This is a tracking bug for Python 3 compatibility fixes.

smut-on-git pushed a commit that referenced this issue Nov 1, 2018
This is enough for `python3.6 tracing/bin/run_py_tests` to work

Bug: catapult:#4599
Change-Id: Ic909e9d0d9aabda2ac980155ebdbf50270c59e65
Reviewed-on: https://chromium-review.googlesource.com/c/1304593
Commit-Queue: Oleh Prypin <oprypin@chromium.org>
Reviewed-by: Ned Nguyen <nednguyen@google.com>
@ITmaze
Copy link

ITmaze commented Nov 19, 2018

Using a python:latest container, which defaults to python3, the following test fails:

# catapult/tracing/bin/run_py_tests
[50/139] trace_data.trace_data_unittest.TraceDataTest.testSerializeTraceback (most recent call last):
File "/tmp/catapult/tracing/tracing/trace_data/../../bin/trace2html", line 13, in
from tracing_build import trace2html
File "/tmp/catapult/tracing/tracing_build/trace2html.py", line 17, in
from py_vulcanize import generate
File "/tmp/catapult/common/py_vulcanize/py_vulcanize/init.py", line 11, in
from py_vulcanize.project import Project
File "/tmp/catapult/common/py_vulcanize/py_vulcanize/project.py", line 13, in
from py_vulcanize import resource_loader
File "/tmp/catapult/common/py_vulcanize/py_vulcanize/resource_loader.py", line 13, in
from py_vulcanize import html_module
File "/tmp/catapult/common/py_vulcanize/py_vulcanize/html_module.py", line 10, in
from py_vulcanize import parse_html_deps
File "/tmp/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py", line 34, in
import bs4
File "/tmp/catapult/third_party/beautifulsoup4/bs4/init.py", line 175
except Exception, e:
^
SyntaxError: invalid syntax
[51/139] trace_data.trace_data_unittest.TraceDataTest.testSerialize failed unexpectedly:
Traceback (most recent call last):
File "/tmp/catapult/tracing/tracing/trace_data/trace_data_unittest.py", line 21, in testSerialize
ri.Serialize(trace_path)
File "/tmp/catapult/tracing/tracing/trace_data/trace_data.py", line 198, in Serialize
subprocess.check_output(cmd)
File "/usr/local/lib/python3.7/subprocess.py", line 389, in check_output
**kwargs).stdout
File "/usr/local/lib/python3.7/subprocess.py", line 481, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['python', '/tmp/catapult/tracing/tracing/trace_data/../../bin/trace2html', '/tmp/tmpnzrx83ru/tmp_s87kz_4', '--output', '/tmp/tmp7px4mrki/test_trace.json', '--title', '']' returned non-zero exit status 1.
138 tests passed, 0 skipped, 1 failure.

@oprypin
Copy link
Contributor Author

oprypin commented Nov 20, 2018

It works by launching through python3 and only if python is 2.7.

@ITmaze
Copy link

ITmaze commented Nov 20, 2018

# python3 --version
Python 3.7.1

# python2 --version
Python 2.7.13

One point is that the docker container has a symlink called python, that was linked to python3, which caused the failed test. Once I replaced it with a symlink to python2, all worked as expected.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants