Python venv(虚拟环境)使用了错误的Python版本

时间:2018-11-19 10:05:14

标签: python python-3.x virtualenv

我同时安装了Python 3.7和3.6。但是在我的个人资料中,我设置使用3.6,而这确实是which python3报告的版本。

$ which python3 /Library/Frameworks/Python.framework/Versions/3.6/bin/python3

然后我通过运行python3 -m venv venv

创建虚拟环境

我的venv中的所有内容都链接到3.6。我通过ls -la venv/bin并通过检查venv/pyvenv.cfg来确认这一点。

我激活了 venv 虚拟环境。

然后我用pip install zappa安装一个 zappa 库。

当我运行zappa deploy时,出现一个错误,提示不支持Python 3.7。库为什么要使用在virtualenv中未配置的Python版本?如何使它使用正确的版本?

(venv) $ zappa deploy
Traceback (most recent call last):
  File "/Users/t/Projects/djzappa/Spheres/venv/bin/zappa", line 7, in <module>
    from zappa.cli import handle
  File "/Users/t/Projects/djzappa/Spheres/venv/lib/python3.7/site-packages/zappa/__init__.py", line 12, in <module>
    raise RuntimeError(err_msg)
RuntimeError: This version of Python (3.7) is not supported!
Zappa (and AWS Lambda) support the following versions of Python: ['2.7', '3.6']

注意:我不会像所有人建议的那样使用virtualenv,也不会像其他现有答案一样使用。

enter image description here

3 个答案:

答案 0 :(得分:4)

在创建环境时使用此:

virtualenv --python=/usr/bin/python3.6 

但是,如果要使用venv,请首先检查终端中的python3是否根据需要引用了python3.6

如果没有,请使用python3.6的完整路径而不是python3中的唯一python3 -m venv venv来运行命令。

编辑:为什么您的别名python3指的是python3.7-它可能取决于您使用的操作系统和安装顺序。很难说。

答案 1 :(得分:0)

Python版本与virtualenv python版本不同,这就是为什么要抱怨的原因。 您可以重新创建虚拟环境(删除现有环境)并使用以下命令

virtualenv --python = your python version here venv 或者

mkvirtualenv venv --python = your python version here

如果要使用mkvirtualenv命令创建虚拟环境。

答案 2 :(得分:0)

除了已接受的答案外,还请注意,更改venv所在的目录名称会导致使用系统的默认python和pip路径,而不是使用venv一个。