6

我在亚马逊的 Cloud9 工作。

ec2-user:~/environment/flask_init $ python -V
Python 2.7.14
ec2-user:~/environment/flask_init $ virtualenv -p python3 venv
Running virtualenv with interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/ec2-user/environment/flask_init/venv/bin/python3
Also creating executable in /home/ec2-user/environment/flask_init/venv/bin/python
Installing setuptools, pip, wheel...done.
ec2-user:~/environment/flask_init $ source venv/bin/activate
(venv) ec2-user:~/environment/flask_init $ python -V
Python 2.7.14

为什么虚拟环境不使用 Python 3?

请注意,这个问题不是这个问题的重复。该问题特别与 Cloud 9 环境设置 Python 别名的方式有关。

4

4 回答 4

4

我在我的机器上尝试了你的流程,一切都按预期工作。

dluzak@Karol-PC:/tmp$ python -V
Python 2.7.12
dluzak@Karol-PC:/tmp$ virtualenv -p python3 venv
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /tmp/venv/bin/python3
Also creating executable in /tmp/venv/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
dluzak@Karol-PC:/tmp$ source venv/bin/activate
(venv) dluzak@Karol-PC:/tmp$ python -V
Python 3.5.2
(venv) dluzak@Karol-PC:/tmp$ 

尽管如此,我个人在使用virtualenvpython 3: 创建 venv 时将其用作模块python3 -m virtualenv venv。也许这会奏效。

你提供的细节很少。您是否为 Python 2 和 3 安装了 virtualenv?你确定 Python 3 解释器工作正常吗?

编辑:

在对评论进行调查后,我们发现问题出在亚马逊配置的 bash 设置中。它接缝亚马逊配置 bash(可能在 ~/.bashrc 中)以用别名替换 python 调用。要解决此问题,unalias python需要在启用 venv 之前调用。它在亚马逊文档中有描述

于 2018-10-20T06:34:08.810 回答
1

这是我在 Cloud9 上创建 virtualenv 的方法

蟒蛇 3.4

$ sudo pip install virtualenv
$ virtualenv -p /usr/bin/python3.4 venv
$ source venv/bin/activate

蟒蛇 3.6

$ sudo apt update
$ sudo apt install python3.6-venv
$ python3.6 -mvenv venv
$ source venv/bin/activate
于 2018-11-13T17:31:22.503 回答
1

当我今天早些时候使用 virtualenv 时,我遇到了同样的问题,即我的 env 没有使用正确版本的 python。

而不是像这样激活我的环境:

source activate

我发现像这样激活它确实有效:

source ./activate

希望这有帮助!

于 2018-10-23T08:25:45.827 回答
0

我遇到了类似的问题。在我的情况下没有工作,因为我移动了虚拟 env 文件夹(但是当你重命名它时会发生同样的事情)。

您可以通过键入来了解正在使用哪个版本的 python(以及将导入哪个模块)

$ which python

如果它写如下:

/usr/bin/python

那么这意味着你的虚拟环境没有被激活。
要解决此问题,您无需创建新的虚拟环境,只需在 env 中编辑脚本激活文件即可:

$ nano venv/bin/activate

并使用您的虚拟环境的绝对路径编辑以下行:

VIRTUAL_ENV="/YOUR_ABSOLUT/PATH_TO/venv"

希望能帮助到你 :)

于 2019-10-03T16:56:24.800 回答