Jason R. Coombs added the comment:
On Python 3.6, I made the edit. I actually used the one-liner `
os.environ.pop('__PYVENV_LAUNCHER__', None)`. I then created a venv and
installed a package and successfully ran a module in that package:
$ python -m venv ~/.envs/issue22490-test
$ ~/.envs/issue22490-test/bin/python -m pip install cherrypy
Collecting cherrypy
Downloading CherryPy-8.5.0-py2.py3-none-any.whl (463kB)
100% |████████████████████████████████| 471kB 2.2MB/s
Collecting six (from cherrypy)
Using cached six-1.10.0-py2.py3-none-any.whl
Installing collected packages: six, cherrypy
Successfully installed cherrypy-8.5.0 six-1.10.0
$ ~/.envs/issue22490-test/bin/python -m cherrypy
...
[27/Dec/2016:11:08:52] ENGINE Serving on http://127.0.0.1:8080
[27/Dec/2016:11:08:52] ENGINE Bus STARTED
So pyvenv seems to be working.
Additionally, it's corrected the undesirable behavior that Tim demonstrated:
$ rm -R ~/.envs/issue22490-test
$ python -m virtualenv ~/.envs/issue22490-test
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/jaraco/.envs/issue22490-test/bin/python3
Also creating executable in /Users/jaraco/.envs/issue22490-test/bin/python
Installing setuptools, pip, wheel...done.
$ python -c 'import subprocess;
subprocess.call(["/Users/jaraco/.envs/issue22490-test/bin/python", "-c",
"import sys; print(sys.executable)"])'
/Users/jaraco/.envs/issue22490-test/bin/python
I tried making a Framework build of Python with the environment variable
removed entirely, but I'm not experienced enough with builds on a Mac to know
what I need to do to create a proper build. I build Python from source and
tried to create a venv, but it crashed with a nondescript error:
$ ./python.exe -VV
Python 3.6.0+ (3.6:86a412584c02+, Dec 27 2016, 11:24:01)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)]
$ ./python.exe -m venv ~/.envs/issue22490
Error: Command '['/Users/jaraco/.envs/issue22490/bin/python.exe', '-Im',
'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
Aah. The issue is probably no zlib.
$ curl https://bootstrap.pypa.io/get-pip.py -o - | ~/.envs/issue22490/bin/python
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1558k 100 1558k 0 0 5221k 0 --:--:-- --:--:-- --:--:-- 5210k
Traceback (most recent call last):
File "<stdin>", line 20061, in <module>
File "<stdin>", line 194, in main
File "<stdin>", line 82, in bootstrap
zipimport.ZipImportError: can't decompress data; zlib not available
After making sure I had zlib installed and available, by re-running
xcode-select --install, I was able to build with zlib, create a venv, and
install packages to it:
$ ./python.exe -m venv ~/.envs/issue22490
$ ~/.envs/issue22490/bin/python -c "import os;
os.environ['__PYVENV_LAUNCHER__']"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/jaraco/Dropbox/code/public/cpython/Lib/os.py", line 669, in
__getitem__
raise KeyError(key) from None
KeyError: '__PYVENV_LAUNCHER__'
$ ~/.envs/issue22490/bin/pip install cherrypy
Collecting cherrypy
Using cached CherryPy-8.5.0-py2.py3-none-any.whl
Collecting six (from cherrypy)
Using cached six-1.10.0-py2.py3-none-any.whl
Installing collected packages: six, cherrypy
Successfully installed cherrypy-8.5.0 six-1.10.0
$ ~/.envs/issue22490/bin/python -m cherrypy
...
[27/Dec/2016:11:58:09] ENGINE Serving on http://127.0.0.1:8080
[27/Dec/2016:11:58:09] ENGINE Bus STARTED
What else would I need to test? What might one expect to fail due to the lack
of that environment variable?
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue22490>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com