【问题标题】:Unable to create virtual environment on CentOS 7.8 and python3.6CentOS 7.8和python3.6无法创建虚拟环境
【发布时间】: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


    【解决方案1】:

    我在CentOS Linux release 7.9.2009 (Core) 上遇到了同样的问题,并通过安装以下系统包解决了它:

    yum install python36-devel
    yum install python36-setuptools
    yum install python36-virtualenv
    
    python3.6 -m pip install --upgrade pip
    

    使用virtualenvvenv 安装到项目根目录中:

    python3 -m virtualenv venv-dev
    

    采购venv 后,一切看起来都不错,我可以安装所需的要求:

    . ./venv-dev/bin/activate
    
    python3 --version
    Python 3.6.8
    
    pip3 --version
    pip 21.1.1 from /project/root/dir/venv-dev/lib/python3.6/site-packages/pip (python 3.6)
    
    pip3 install -r requirements/dev.txt
    
    Successfully installed  ...
    

    【讨论】:

      猜你喜欢
      • 2020-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 2021-07-30
      相关资源
      最近更新 更多