Python venv (virual environment) uses wrong version of Python
我安装了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版本,如何使其使用正确的版本?
1 2 3 4 5 6 7 8
| (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,并且正如其他现有答案所指的那样。
-
在virtualenv中使用Python 3的可能重复
-
不,这不是重复。
-
使用pip3安装zappa,pip可能会指向3.7版本。
-
是的,它实际上是重复的。 - 您标记为答案的答案可以在我标记的答案中找到。
-
哪一个? 因为我找不到一个解释不同版本Python的安装顺序的单一 - 这就解决了我的问题。 包括评论讨论。
在创建环境时使用此选项:
1
| virtualenv --python=/usr/bin/python3.6 |
但是如果你想使用venv,首先,检查终端中的python3是否指向你想要的python3.6。
如果不是 - 使用python3.6的完整路径运行命令,而不是python3 -m venv venv中的唯一python3。
编辑:为什么你的别名python3指的是python3.7 - 它可能取决于你使用的操作系统和安装顺序。 很难说。
-
我不使用virtualenv。我使用'python3 -m venv'。
-
尝试使用/ usr / bin / python36 -m venv;如果它也不起作用,请安装virtualenv。
-
$ / usr / bin / python36 -bash:/ usr / bin / python36:没有这样的文件或目录
-
$ python3 /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
-
你用conda吗?
-
从来没有听说过conda。
-
我假设您在正常的非环境目录中使用which python3?
-
是的,此刻它已停用
-
这个文件不是符号链接? /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
-
OMG,这实际上报告3.7作为版本$ /Library/Frameworks/Python.framework/Versions/3.6/bin/python3 Python 3.7.1(v3.7.1:260ec2c36a,Oct 20 2018,03:13:28)[Clang 6.0 (clang-600.0.57)]关于darwin输入"帮助","版权","信用"或"许可证"以获取更多信息。
-
它甚至比我想象的更奇怪,更恶心
-
:|"+"将足以为我调试问题; D
-
为什么有3.7的simlink?我使用了普通的安装程序....请解释并把它放在你的答案中,这样我就可以接受了。我不能接受评论中写的答案:)
Python版本与virtualenv python版本不同,这就是它抱怨的原因。
您可以重新创建虚拟环境(删除现有环境)并使用以下命令
virtualenv --python = your python version here venv
要么
mkvirtualenv venv --python = your python version here
如果要使用mkvirtualenv命令创建虚拟环境。
-
我不使用virtualenv。我使用'python3 -m venv'。