所以我在新的 MacBook M1 中設定我的默認變數,由于某種原因,我的符號鏈接似乎不起作用。
為什么會發生以下行為?來自pythonto的符號鏈接python3不知何故丟失了。/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
uj5u.com熱心網友回復:
鑒于路徑未被使用,它被 shell 別名覆寫。這可以通過鍵入來確認set | grep python
如果您使用的是virtualenv:
嘗試: /usr/bin/python3 -m venv python3.8.9
常見的 MacOS python 管理器有:
- 蟒蛇
列出安裝使用 pythonz list
更改使用: /usr/bin/python3 -m venv python3.8.9
- 蟒蛇
列出安裝 pythonbrew list
使用pythonbrew switch 3.8.9移動到新的版本。
- pyenv
聲稱僅使用 $PATH。包括完整性,但以防萬一
列出安裝 pyenv versions
使用pyenv global 3.8.9移動到新的版本。
要洗掉其中任何一個,請從您的~/.bashrc或 ~/.zshrc檔案中洗掉相應的行 。
您可以使用 定位該行grep ~/.bashrc python。
uj5u.com熱心網友回復:
我可以為您提供一些通用的故障排除技巧和可以替代符號鏈接的創可貼。
$(which python) -V
這應該會為您提供 python3 的版本。
其他值得檢查的事情:
which python2
例如,這應該指向某個標準位置/usr/bin/python2。如果它沒有指向那里,可能值得理解為什么。
一般來說,Mac 有一些怪癖。新的 MacBook M4 附帶 Python2 作為默認值的事實是一種氣味,您可能不應該嘗試覆寫默認值,無論出于何種原因,它似乎都不希望您這樣做。
簡單的答案:設定別名。
echo 'alias python="python3"' >> ~/.zshrc && source;
這對您有用,并且不會干擾任何潛在的其他系統。
更好的答案:
正如其他人所描述的,創建一個虛擬環境和source venv/bin/activate.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/326775.html
