Virtualenv不使用正确版本的Python

问题描述 投票:2回答:3

我在亚马逊的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?

请注意,这个问题不是this one的副本。该问题与Cloud 9环境设置Python别名的方式有关。

python virtualenv aws-cloud9
3个回答
3
投票

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

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$ 

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

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

编辑:

经过评论调查后,我们发现问题出在亚马逊配置的bash设置中。亚马逊配置bash(可能在〜/ .bashrc中)用别名替换python调用。要解决此问题,需要在启用venv之前调用unalias python。它在Amazon docs中描述


1
投票

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

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

source activate

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

source ./activate

希望这有用!


0
投票

以下是我在Cloud9上创建virtualenv的方法

Python 3.4

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

Python 3.6

$ sudo apt update
$ sudo apt install python3.6-venv
$ python3.6 -mvenv venv
$ source venv/bin/activate
© www.soinside.com 2019 - 2024. All rights reserved.