簡體   English   中英

Mac OSX Catalina 破解了所有 Python Venv

[英]Mac OSX Catalina Broke All Python Venv's

最近剛剛升級到 Mac OSX Catalina,它似乎破壞了我所有的 Python venv。

  1. 我有一個我之前在升級到 Catalina 之前創建的 venv。
  2. 我可以毫無問題地激活 venv: source venv/bin/activate
  3. 當我輸入pythonpython3 ,它實際上運行系統 Python 解釋器,而不是我的 venv 中預期的 Python 解釋器。

隨着我的 venv 激活...

>>> which python
/usr/bin/python
>>> which python3
/usr/local/bin/python3

我希望它指向/Users/<username>/<path-to-venv>/venv/bin/python3

  1. 如果我嘗試直接運行該 Python 解釋器:
>>> /Users/<username>/<path-to-venv>/venv/bin/python3

bash: /Users/<username>/<path-to-venv>/venv/bin/python3: No such file or directory
  1. 如果我在 Finder 中導航到這個 venv 目錄,我可以看到python3文件存在,盡管它實際上是一個別名。 如果我雙擊它,會彈出一條錯誤消息,內容為: The operation can't be completed because the original item for "Python3" can't be found.

所以我認為這些 venv 的工作方式是它們基於對現有 Python 解釋器安裝的引用。 顯然運行 venv 會調用這些引用,如果原始安裝被破壞,它就會失敗。 我知道 Catalina 使用默認的 Python 設置,甚至更改了安裝目錄。

有人遇到過這種情況么? 任何人都可以提供解決此問題的提示嗎? 這似乎影響了我系統中的所有 venv 虛擬環境。

您可以嘗試在同一文件夾中創建一個新的 venv 或更新您現有的 venv。 通過以下所有內容,我假設您已經使用捆綁的venv模塊創建了虛擬環境

  • 對於創建,它是您可能已經使用過的命令
python3 -m venv <path_to_dir>
  • 為了更新, --upgrade參數就是你要找的。

您需要使用目標 Python 版本運行它,例如在這種情況下:

python3 -m venv --upgrade <path_to_dir>

有關更多詳細信息,請在此處查看我的答案

暫無
暫無

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

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