簡體   English   中英

Python 符號鏈接到 python3

[英]Python symlink to python3

所以我在新的 MacBook M1 中設置我的默認變量,出於某種原因,我的符號鏈接似乎不起作用。

為什么會發生以下行為? pythonpython3的符號鏈接不知何故丟失了。 /Users/overflow/Documents/tools是我的PATH變量的一部分。

$ type python
python is /Users/overflow/Documents/tools/python

$ python -V
Python 2.7.16

$ ls -lah /Users/overflow/Documents/tools/python
lrwxr-xr-x  1 overflow  staff    16B  6 Oct 18:48 /Users/overflow/Documents/tools/python -> /usr/bin/python3

$ /usr/bin/python3 -V
Python 3.8.9

$ echo $PATH | sed 's/:/\n/g'
/Users/overflow/Documents/tools
/Users/overflow/Documents/Dropbox/productivity/bin
/Users/overflow/Documents/tools/confluent-6.1.0/bin
/Users/overflow/.sdkman/candidates/java/current/bin
/Users/overflow/.nvm/versions/node/v16.10.0/bin
/Users/overflow/bin
/usr/local/bin
/opt/homebrew/bin
/opt/homebrew/sbin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

鑒於路徑未被使用,它被 shell 別名覆蓋。 這可以通過輸入set | grep python來確認set | grep python set | grep python

如果您使用的是virtualenv

試試: /usr/bin/python3 -m venv python3.8.9

常見的 MacOS python 管理器有:

  1. 蟒蛇

使用pythonz list列出安裝

更改使用: /usr/bin/python3 -m venv python3.8.9

  1. 蟒蛇

列表安裝pythonbrew list

使用pythonbrew switch 3.8.9移動到新版本。

  1. pyenv

聲稱僅使用 $PATH。 包括完整性,但以防萬一

列出安裝的pyenv versions

使用pyenv global 3.8.9移動到新版本。


要刪除其中任何一個,請從~/.bashrc~/.zshrc文件中刪除相應的行。

您可以使用grep ~/.bashrc python找到該行。

我可以為您提供一些通用的故障排除技巧和可以替代符號鏈接的創可貼。

$(which python) -V

這應該會為您提供 python3 的版本。

其他值得檢查的事情:

which python2

這應該指向一些標准位置,例如/usr/bin/python2 如果它沒有指向那里,可能值得理解為什么。

一般來說,Mac 有一些怪癖。 新的 MacBook M4 附帶 Python2 作為默認值的事實是一種氣味,您可能不應該嘗試覆蓋默認值,無論出於何種原因,它似乎都不希望您這樣做。

簡單的答案:設置別名。

echo 'alias python="python3"' >> ~/.zshrc && source;

這對您有用,並且不會干擾任何潛在的其他系統。

更好的答案:

正如其他人所描述的,創建一個虛擬環境和source venv/bin/activate

暫無
暫無

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

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