【发布时间】:2020-08-25 14:16:12
【问题描述】:
我有两台服务器运行 CentOS 7.8,截至本文发布之日,所有最新补丁均已安装。在一台服务器上我可以创建一个 venv,而在另一台服务器上我得到一个错误。这是用于创建 venv 的命令:
python3.6 -m venv venv
错误是:
Error: Command '['/root/venv/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
所以看来venv创建后有问题。实际上,它在 venv/bin 中创建了指向 python 解释器的链接,但是创建的 lib64/python3.6 和 lib/python3.6 目录中只有空的站点包。无论是使用 root 权限(如上)还是作为非特权用户运行命令,我都会遇到问题。在另一个硬件不完全相同但非常相似的系统上,我没有收到任何错误。
我已经尝试了很多方法,包括完全卸载所有 python3 rpm 并在两个系统上重新安装它们。安装的python3模块是: python3、python3-devel、python3-libs、python3-other-rpm-macros、python3-pip、python3-rpm-generators、python3-setuptools、python3-tkinter、python3-wheel。所有这些都是使用 centos repos 安装的。
我已经搜索了互联网,其中一件事是使用 --no-pip。但是,毫不奇怪,如果我这样做,我会得到一个没有 pip 的 venv,它的效果不是很好。随 rpm 安装的 pip 版本是 9.0.3 版。但是,我尝试过升级 pip:
python3.6 -m pip install --upgrade pip
这将安装 pip 20.1。有趣的是,它安装在 /usr/local/lib/python/site-packages 中。无论如何,它不会改变任何东西,我得到的错误信息基本相同。
我什至已经在两台服务器上同步了 /usr/lib/python3.6 和 /usr/lib64/python3.6(使用 -avu --delete),以使它们相同。一切都无济于事。我不知道该怎么办。
我当然可以破解一些东西以使其工作,但由于我使用它来自动构建测试环境,我真的需要让它自动工作。建议将不胜感激。
【问题讨论】:
标签: virtualenv python-3.6 centos7