Python 现有virtualenv是否可以正常升级?
我为Python2.5创建了一个virtualenv,并希望将其“升级”到Python2.6 以下是最初的设置方式:Python 现有virtualenv是否可以正常升级?,python,virtualenv,Python,Virtualenv,我为Python2.5创建了一个virtualenv,并希望将其“升级”到Python2.6 以下是最初的设置方式: virtualenv --no-site-packages -p python2.5 myenv 我现在在同一目录下运行virtualenv进行升级: virtualenv --no-site-packages -p python2.6 myenv ... Not overwriting existing python script myenv/bin/python (you
virtualenv --no-site-packages -p python2.5 myenv
我现在在同一目录下运行virtualenv进行升级:
virtualenv --no-site-packages -p python2.6 myenv
...
Not overwriting existing python script myenv/bin/python (you must use myenv/bin/python2.6)
...
Overwriting myenv/bin/activate with new content
默认的python仍然是2.5,尽管我也可以指定2.6。有没有办法完全删除2.5,并将“bin/python”指向2.6 您应该使用
python2.6
创建一个新的virtualenv
,然后在激活新的env后,使用它的python2.6
和它的easy\u install
安装您需要的任何站点软件包的新版本。请注意,virtualenv
的路径名已硬连接到环境中的各种文件中,因此,当您准备切换到它时,更改启动脚本等以引用新的virualenv
路径,或者非常小心地将其复制到旧目录中并修改其中的路径名。您可以使用Python 2.6 virtualenv“revirtual”现有目录。不过,您必须重新安装所有已安装的模块。我通常有一个用于开发模块的虚拟目录,virtualenv与许多版本的Python使用同一目录,并且工作正常。:) 在CentOS上安装第二个Python
configure --prefix=/opt/virtualenv/python
make && make install
virtualenv /opt/virtualenv --python=/opt/python276/bin/python
注意:如果需要,可以与其他用户一起完成
chown pyuser -R /opt/virtualenv
su - pyuser
source /opt/virtualenv/bin/activate
python -v
virtualenv /opt/virtualenv
su - infograficos
source bin/activate
--upgrade Upgrade the environment directory to use this version
of Python, assuming Python has been upgraded in-place.
用法:
python -m venv --upgrade YOUR_VENV_DIRECTORY
我刚刚在几个项目上将我的venv从Python 3.7.x升级到3.8,没有任何问题。谢谢!我尝试了你的方法,并看到“激活”脚本已更新,但旧版本仍然存在(请参阅修订后的问题)。你能提供一个例子吗?在用python 2.6重新运行virtualenv之前,你可以删除virtualenv中的bin/python可执行文件。好吧,你可以让它工作——但为什么?
virtualenv
的最大吸引力在于它可以轻松且廉价地创建可复制的python环境。为什么要弄脏一个,而不确定你已经修复了所有的东西,或者你可以再次复制它,或者当你可以制作一个新的干净的环境时,你正在干扰你的生产环境?@Ned:Virtualenv不制造可复制的环境,它制造孤立的环境。要复制它们,您还需要以相同的方式安装所有内容,virtualenv还不够。zc.buildout在那里更好。@Ned:我的观点是正确的;这是我工作的一个开发环境。我想把它保持在2.5,除非我绝对需要做2.6。这一需求产生了,因此我很好奇,您是否可以升级一个隔离的环境,以查看对代码的影响,而不必重建目录并将目录复制/粘贴到新的环境中。。。不幸的是,这似乎意味着如果我的系统python3
指向3.6,我无法在我的venvIn 2021中创建指向3.7的getpython3
,我想最好的办法就是制作一个新的venv并重新安装依赖项-可能其他答案(包括使用升级
)可能不合适
python -m venv --upgrade YOUR_VENV_DIRECTORY