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

How to change the python version of already existing virtualenv?

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

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

我正在使用 manjaro。

编辑 1

进行了一些测试并找到了另一种更 "graceful" 的方法来(至少)更新可执行文件。假设虚拟环境最初是这样创建的 virtualenv -p /path/to/my/python2.7 .venv。可执行文件可以更新到特定的 python 版本,如下所示:virtualenv --clear -p /path/to/my/python3.6 .venv。请验证 .venv/bin/python 中的 python 符号链接是否已使用 ls -la .venv/bin/python 更新。旧的可执行文件仍将位于 ./venv/bin/.

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


参见 this link 解释得很好。

Virtualenvwrapper comes with some convenient commands for managing your virtualenvs.

To change your Python version:

  1. Deactivate your current environment session.

  2. If you have many packages or libraries installed, it would be a good idea to make a requirements.txt file. Remember to edit version as necessary.

  3. Remove the virtualenv with the wrapper command: rmvirtualenv

    • This will remove the virtualenv, but leave your project files.
  4. Make a new virtualenv with the Python version you want.

    • Example: mkvirtualenv -p python3 env-name

    • You can specify the Python version with the -p flag and version. If you have a requirements.txt file, you can specify that with -r requirements.txt

  5. Now bind your new virtualenv to your project directory. You can specify the full paths, but it is easier to have your new virtualenv activated and be in your project directory. Then, run the command:

Example: setvirtualenvproject

请让me/us知道这个答案是否对您有帮助!