我同时安装了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,也不会像其他现有答案一样使用。
答案 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一个。