python - 将 ubuntu 15.10 升级到 16.04 后 virtualenv python 崩溃了

标签 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)

我该如何解决?

最佳答案

我通过安装最低工作 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

我的 virtualenv 在这里:~/virtualenv/example

获取您的 virtualenv 中的包列表(现在应该可以很好地完成此任务,但可能无法正常执行其他操作):

source ~/virtualenv/example/bin/activate
pip freeze > /tmp/requirements.txt
deactivate 

摆脱python3.4,回到Ubuntu 16.04的首选状态:

sudo dpkg --purge python3.4-minimal
sudo dpkg --force-depends --purge libpython3.4-minimal

使用正确的包创建一个新的 virtualenv:

virtualenv -p python3.5 example
source ~/virtualenv/example/bin/activate
pip install -r /tmp/requirements.txt

现在应该可以使用所有旧包,但在 python3.5 中。应该...

另见 Upgrade python in a virtualenv

关于python - 将 ubuntu 15.10 升级到 16.04 后 virtualenv python 崩溃了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36796887/

相关文章:

python - Matlab 的 fminimax 是否适用帕累托最优?

python - pymysql.err.InternalError : (1049, "Unknown database")

python - 我应该使用什么数据类型作为 redis-py 函数的参数?

bash - 如何在whiptail中循环case语句

ubuntu - 如何在 docker 中更改 Ubuntu 的主机名?

python - 什么是 virtualenv,我为什么要使用它?

python - 如何使用美国农业部 API

json - 如何使用cloudformation复制AMI

python - 使用 python 3.10 为 python 2.7 创建 virtualenv

git - 虚拟环境 : Connection in use error