4

我的 virtualenv 目前配置为 python 3.5.0,而我需要使用的包只支持 2.7。我需要一种在我的 virtualenv 中将我的 python 运行时降级到 2.7 的方法。

我确实有两个版本可供使用:第一个在我的 virtualenv 中,第二个在计算机范围内。

(project) me-Air:element me$ python -V
Python 3.5.0

me-Air:element me$ python -V
Python 2.7.10
4

3 回答 3

6

You cannot "downgrade" virtualenv.

You will have to create a new one, you don't necessarily need to delete your current one unless you want the virtualenv to have the same name as your current one.

virtualenv -p /usr/bin/python2.7 <path/to/new/virtualenv/>

Since your problem requires them to be integrated there are many ways to do it, use subprocess to do whatever you need to with the Python 2.7 code and transfer the output back to your Python 3 code.

You could also use Rabbit MQ Queues to transfer data to and from the programs running different versions of Python.

于 2017-02-14T09:06:00.643 回答
2

我发现的最好的工作之一是使用“pyenv”,通过使用 pyenv 将较低版本制作为全局版本,然后制作目录,进入内部,在下面使用来制作 virtualenv

你可以这样使用:

$ python3.7 -m venv env

之后激活环境:

$ source env/bin/activate

然后:

$ which python
  • 您可以将 pyenv 设置为根级别,实际上,如果您使用 brew 或其他搜索安装 pyenv,您会发现

输出显示了 python 代码的位置。

复制它们并将其粘贴到您在升级时遇到问题的最后一个目录。

我的问题:我将我的 python 升级到最新(3.8.5),但不幸的是 jupyter-lab 和 pip 无法工作,所以 9 小时后我这样做了,它工作了,

我们得到的主题:

安装pyenv:

$brew install pyenv

使其根如下:

$ PATH=$(pyenv root)/shims:$PATH
$ echo 'PATH=$(pyenv root)/shims:$PATH' >> ~/.zshrc 

安装你的 python 版本:

$ pyenv install 3.7.0
$ pyenv install 3.8.5

使低到全局:

$ pyenv global 3.7.0

做 virtualenv 的事情,编码结束。获取文件 复制它,转到最后一个目录并粘贴并删除其中的原件。

于 2020-09-28T16:37:12.223 回答
2

将 virtualenv 固定到特定 Python 版本的另一种方法是通过-mPython 可执行文件上的标志运行它。例如

python2 -m virtualenv ./venv

同样,如果你想要一个 Python 3 virtualenv,你可以运行这个:

python3 -m virtualenv ./venv
于 2018-01-27T17:26:30.553 回答