Але*_*кий 18 python ubuntu virtualenv
我的virtualenv中有python 3.4,但在升级ubuntu到16.04后python升级到3.5所以在virtualenv中的python崩溃了这些错误:
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Current thread 0x00007f2f2dbcb700 (most recent call first):
fish: “python” terminated by signal SIGABRT (Abort)
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我通过安装最低工作 python3.4 解决了这个问题,以便我的 virtualenv 工作得足够好以获取软件包列表,然后使用 python3.5 创建一个新的...如下:
获取python3.4最小包:
wget http://launchpadlibrarian.net/221250032/python3.4-minimal_3.4.3-1ubuntu1~14.04.3_amd64.deb
wget http://launchpadlibrarian.net/221250033/libpython3.4-minimal_3.4.3-1ubuntu1~14.04.3_amd64.deb
sudo dpkg -i --force-breaks libpython3.4-minimal_3.4.3-1ubuntu1~14.04.3_amd64.deb
sudo dpkg -i python3.4-minimal_3.4.3-1ubuntu1~14.04.3_amd64.deb
Run Code Online (Sandbox Code Playgroud)
我的 virtualenv 在这里:~/virtualenv/example
获取 virtualenv 中的包列表(现在应该可以很好地完成此任务,但可能无法正确执行其他操作):
source ~/virtualenv/example/bin/activate
pip freeze > /tmp/requirements.txt
deactivate
Run Code Online (Sandbox Code Playgroud)
摆脱python3.4,回到Ubuntu 16.04的首选状态:
sudo dpkg --purge python3.4-minimal
sudo dpkg --force-depends --purge libpython3.4-minimal
Run Code Online (Sandbox Code Playgroud)
使用正确的包创建一个新的 virtualenv:
virtualenv -p python3.5 example
source ~/virtualenv/example/bin/activate
pip install -r /tmp/requirements.txt
Run Code Online (Sandbox Code Playgroud)
现在应该可以使用所有旧软件包(但在 python3.5 中)。应该...