簡體   English   中英

Python venv(虛擬環境)使用錯誤版本的Python

[英]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創建虛擬python3 -m venv venv

我的 venv 中的所有內容都與 3.6 相關聯。 我通過ls -la venv/bin並檢查venv/pyvenv.cfg確認這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,也不會像其他現有答案所指的那樣使用。

在此處輸入圖片說明

在創建環境時使用它:

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

但是如果你想使用venv,首先要檢查你終端中的python3是否是你想要的python3.6

如果不是 - 在python3 -m venv venv的完整路徑而不是唯一的python3運行你的命令。

編輯:為什么你的別名 python3 指的是 python3.7 - 這可能取決於你使用的操作系統和安裝順序。 很難說。

Python 版本與 virtualenv python 版本不同,這就是它抱怨的原因。 您可以重新創建您的虛擬環境(刪除現有的)並使用以下命令

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

mkvirtualenv venv --python= your python version here

如果你想使用 mkvirtualenv 命令創建你的虛擬環境。

作為已接受答案的補充,還請注意,更改 venv 所在的目錄名稱會導致使用系統的默認 python 和 pip 路徑,而不是使用 venv 路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM