#1878 closed task (fixed)
python 3.7 support
Reported by: | Antoine Martin | Owned by: | Antoine Martin |
---|---|---|---|
Priority: | critical | Milestone: | 2.4 |
Component: | platforms | Version: | |
Keywords: | Cc: |
Description (last modified by )
Python 3.7 is due to be released soon: Python 3.7.0rc1, there are a number of things we can take advantage of, some may allow us to drop existing workarounds.
The most interesting features:
- PEP 538 -- Coercing the legacy C locale to a UTF-8 based locale and PEP 540 -- Add a new UTF-8 Mode may help sort out the mess of the UTF8 encode / decode dance, or is too late already?
- PEP 564 -- Add new time functions with nanosecond resolution: we could replace our
monotonic_time
withtime.monotonic_ns
- but again, the damage has been done and this will be difficult to merge with the cython code which uses cimport
Change History (7)
comment:1 Changed 3 years ago by
comment:2 Changed 3 years ago by
Milestone: | 3.0 → 2.4 |
---|---|
Priority: | major → blocker |
Status: | new → assigned |
There's a major blocker with cx_freeze, once again falling flat on its face.
Looks like it does not support python 3.7 yet, and this also affects pyinstaller: zipimport.ZipImportError: can't find module 'encodings'.
$ ./Xpra_cmd.exe attach tcp:192.168.1.5:10000 Fatal Python error: init_sys_streams: can't initialize sys standard streams zipimport.ZipImportError: can't find module 'io'
Moving the missing modules by hand into the "library.zip" doesn't really help and the resulting executable still fails with:
$ ./Xpra_cmd.exe attach tcp:192.168.1.5:10000 zipimport.ZipImportError: can't find module '__startup__'
BTW, those modules were already hard-coded in setup.py to workaround existing cx_freeze breakage:
#hopefully, cx_Freeze will fix this horror: #(we shouldn't have to deal with DLL dependencies) import site lib_python = os.path.dirname(site.getsitepackages()[0]) lib_dynload_dir = os.path.join(lib_python, "lib-dynload") add_data_files('', glob.glob("%s/zlib*dll" % lib_dynload_dir)) for x in ("io", "codecs", "abc", "_weakrefset", "encodings"): add_data_files("lib/", glob.glob("%s/%s*" % (lib_python, x)))
That's amongst a few other workarounds (base_prefix, numpy, etc)
comment:3 Changed 3 years ago by
Description: | modified (diff) |
---|---|
Priority: | blocker → critical |
cx_freeze can be fixed with this patch: Compilation correct .pyc files for Python 3.7.0
Created a mingw ticket for this: cx_Freeze for python3.7 needs a patch - bytecode is unusable
comment:4 Changed 3 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
The MSYS2 package has been updated with the patch and we have workarounds for the rest.
comment:5 Changed 2 years ago by
One of the few noisy deprecation warnings left is from https://github.com/pyparsing/ (fixed in 2.2.1 - Fix collections ABCs deprecation warning).
comment:6 Changed 2 years ago by
For websockify, see attachment/ticket/1568/websockify-0.8-py37.tar.xz
comment:7 Changed 5 weeks ago by
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1878
Eventually, it would be nice to be able to compile with the new buffer interface and avoid deprecation warnings like #1884.
In the meantime:
New problem:
OpenGL_accelerate
doesn't build - see #1883.