如何更改已经存在的virtualenv的python版本?

dAn*_*dAn 8 virtualenv manjaro python-3.6 python-3.7

我使用python 3.6创建了一个虚拟环境,然后进行了系统升级,并在系统范围内安装了python 3.7。现在,我无法在该虚拟环境中执行python文件,因为它正在搜索python 3.6。

如何升级virtualenv python版本以匹配系统范围的版本,或如何降级该特定虚拟环境的python版本?

我正在用manjaro。

Tho*_*sse 6

编辑1

做了一些测试,发现了另一种“优雅”的方式(至少)更新了可执行文件。假设虚拟环境最初是像这样创建的 virtualenv -p /path/to/my/python2.7 .venv。可执行文件可以更新为特定的python版本,例如:virtualenv --clear -p /path/to/my/python3.6 .venv。请确认中的python符号链接.venv/bin/python已使用更新ls -la .venv/bin/python。旧的可执行文件仍将位于中./venv/bin/

注意:您需要安装特定的python目标版本。


请参阅此链接,它解释得很好。

Virtualenvwrapper附带了一些方便的命令,用于管理您的virtualenvs。

要更改您的Python版本:

  1. 停用当前的环境会话。

  2. 如果您安装了许多软件包或库,那么最好创建一个requirements.txt文件。请记住根据需要编辑版本。

  3. 使用wrapper命令删除virtualenv:rmvirtualenv

    • 这将删除virtualenv,但保留您的项目文件。
  4. 使用所需的Python版本制作一个新的virtualenv。

    • 示例:mkvirtualenv -p python3 env-name

    • 您可以使用-p标志和版本指定Python版本。如果您有requirements.txt文件,则可以使用-r requirements.txt进行指定

  5. 现在将新的virtualenv绑定到项目目录。您可以指定完整路径,但是更容易激活新的virtualenv并将其放置在项目目录中。然后,运行命令:

示例:setvirtualenvproject

请让我/我们知道此答案是否对您有所帮助!

  • 感谢您的快速解答。由于某些原因,我无法使用virtualenv包装器,但是我要做的是手动删除virtualenv的bin / include /和lib /文件夹,然后只运行virtualenv -p python3 env (2认同)
  • 这不是一个很好的答案,AFAICT,因为(1)当 python 升级时,你失去了创建新的“requirements.txt”文件的能力(如果这不是真的,请解释如何做到这一点);(2) 这看起来像是“粉碎旧的虚拟环境并重建它”,这是一个相当不令人满意的答案。 (2认同)