Virtualenv 未使用正确版本的 Python

Rub*_*oob 6 python virtualenv aws-cloud9

我在亚马逊的 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
Run Code Online (Sandbox Code Playgroud)

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

请注意,此问题与此问题不重复。该问题具体与 Cloud 9 环境设置 Python 别名的方式有关。

Dlu*_*zak 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$ 
Run Code Online (Sandbox Code Playgroud)

尽管如此,我个人virtualenv在使用 python 3: 创建 venv 时使用 as 模块python3 -m virtualenv venv。也许这会起作用。

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

编辑:

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