You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python 3.5.2下使用virtualenv创建虚拟环境执行异常求助

解决virtualenv创建停滞及虚拟环境Python失效问题

嘿,我之前在维护老旧Python 3.5项目的时候也碰到过一模一样的问题!你遇到的核心情况是:执行virtualenv -p python3 venv时,卡在Installing setuptools, pip, wheel...阶段,而且最终生成的虚拟环境里Python 3完全没法正常用。下面是几个我亲测有效的解决方案,按顺序试就行:

1. 先清理残留,确保系统Python正常

  • 先按Ctrl+C终止卡住的进程,别硬等
  • 删除已经生成的残缺虚拟环境文件夹:rm -rf /var/www/html/python3_virtualenv
  • 先确认系统级的Python 3.5.2是好的:执行python3.5 -V,如果输出不是Python 3.5.2,那得先修复系统里的Python 3.5安装,不然虚拟环境肯定出问题

2. 用绝对路径指定Python版本创建

有时候python3软链接可能指向了其他版本(比如系统里装了Python3.6+),直接用Python3.5的绝对路径来创建虚拟环境,避免混淆:

virtualenv -p /usr/bin/python3.5 venv

如果还是卡在安装依赖那一步,试试加上--no-wheel参数跳过wheel安装——旧版本virtualenv在wheel包的处理上经常出bug:

virtualenv -p /usr/bin/python3.5 --no-wheel venv

3. 手动创建空环境再补装依赖

如果上面的方法还是卡住,那就绕开自动安装,手动来:

  • 先创建一个不带任何依赖的空虚拟环境:
    virtualenv -p /usr/bin/python3.5 --no-setuptools --no-pip --no-wheel venv
    
  • 激活虚拟环境:source /var/www/html/python3_virtualenv/bin/activate
  • 注意:Python3.5只支持pip<21.0.0、setuptools<46.0.0、wheel<0.37.0的版本,你可以下载对应版本的whl包,然后本地安装:
    pip install ./setuptools-45.0.0-py2.py3-none-any.whl
    pip install ./pip-20.3.4-py2.py3-none-any.whl
    pip install ./wheel-0.36.2-py2.py3-none-any.whl
    

4. 排查网络/权限问题(针对安装停滞)

如果你是在服务器环境(比如/var/www目录),很可能是网络策略限制了pip访问官方源,或者目录权限不够。试试这两个操作:

  • 临时指定国内镜像源来创建,加快下载:
    virtualenv -p /usr/bin/python3.5 --extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple venv
    
  • 确保当前用户对/var/www/html目录有读写权限,不然虚拟环境没法生成文件:
    sudo chown -R $USER:$USER /var/www/html
    

最后验证修复结果

创建完成后,激活虚拟环境,执行python -V,应该输出Python 3.5.2;再执行pip -V,确认pip是虚拟环境内的版本(路径包含python3_virtualenv/bin)。如果都正常,那问题就解决啦!

内容的提问来源于stack exchange,提问作者Nitesh Kumar Singh

火山引擎 最新活动