Virtualenv使用的Python版本不正确

时间:2018-10-20 06:10:33

标签: python virtualenv aws-cloud9

我正在Amazon的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别名的方式有关。

4 个答案:

答案 0 :(得分: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:virtualenv创建venv时,我个人使用python3 -m virtualenv venv作为模块。也许这行得通。

您提供的信息很少。您是否同时为Python 2和3安装了virtualenv?您确定Python 3解释器可以正常工作吗?

编辑:

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

中有描述

答案 1 :(得分:1)

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

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

source activate

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

source ./activate

希望这会有所帮助!

答案 2 :(得分:0)

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

Python 3.4

SELECT * FROM wp_posts;

| post_content         |
| -------------------- |
| adasdaadsa121324124  |
| 1412123123adasdaafas |

Python 3.6

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

答案 3 :(得分:0)

我遇到了类似的问题。 就我而言,因为我移动了虚拟env文件夹而没有用(但是重命名时也会发生同样的事情)。

您可以通过输入

来了解正在使用哪个版本的python(以及哪个模块将导入)。
$ which python

如果它写类似:

/usr/bin/python

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

$ nano venv/bin/activate

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

VIRTUAL_ENV="/YOUR_ABSOLUT/PATH_TO/venv"

希望有帮助 :)