Message283859
| Author |
tdsmith |
| Recipients |
jaraco, ned.deily, ronaldoussoren, tdsmith, vinay.sajip |
| Date |
2016年12月22日.20:00:38 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1482436838.94.0.527377078187.issue22490@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
I spoke prematurely; I recently rediscovered that the persistence of __PYVENV_LAUNCHER__ poisons the sys.executable of virtualenv interpreters launched as a subprocess of another Python interpreter:
$ virtualenv -p python3 test
$ test/bin/python3 -c 'import sys; print(sys.executable)'
/Users/tim/test/bin/python3
$ /usr/local/bin/python3 -c 'import subprocess; subprocess.call(["/Users/tim/test/bin/python3", "-c", "import sys; print(sys.executable)"])'
/usr/local/bin/python3
$ /usr/local/bin/python3 -c 'import subprocess, os; del os.environ["__PYVENV_LAUNCHER__"]; subprocess.call(["/Users/tim/test/bin/python3", "-c", "import sys; print(sys.executable)"])'
/Users/tim/test/bin/python3
If __PYVENV_LAUNCHER__ can be unset before script execution begins, that seems ideal. |
|