如何解决"zsh: command not found: python" 错误?(macOS Monterey 12.3, Python 3.10, Atom IDE, 和atom-python-run 0.9.7)
自从我得到macOS v12.3 (Monterey)更新后(虽然不确定是否有关系),当我试图在终端运行我的Python代码时,我一直得到这个错误。
我使用Python 3.10.3,Atom IDE,并通过atom-python-run包在终端运行代码(以前运行得很好)。该包的设置是这样的。
终端中的which
命令会返回以下内容(这很奇怪,因为早些时候它会返回一些东西,只返回which python
)。
我认为错误的发生是因为终端调用python
而不是python3
,但我对任何编码都是超级新手,不知道为什么现在开始,也不知道如何解决。这些东西对我都不起作用。
任何将他们的macOS更新到Monterey 12.3的人都会发现,他们突然不再有系统提供的Python 2了。
其原因是苹果公司删除了系统提供的Python 2的安装(details)。
所以一个变通/解决方案是使用pyenv来安装Python 2.7 (或你需要的任何其他特定版本)。
- 将
pyenv
与brew
一起安装,以管理不同的Python版本。brew install pyenv
- 用
pyenv install --list
列出所有可安装的版本 - 安装带有
pyenv install 2.7.18
的Python 2.7.18。 - 用
pyenv versions
列出已安装的版本 - 用
pyenv global 2.7.18
来设置全局的Python版本 - 将
eval "$(pyenv init --path)"
加到~/.zprofile
(或~/.bash_profile
或~/.zshrc
,以你所需要的为准)。 - 重新启动shell并检查Python是否工作,或者运行
$ source ~/.zprofile
(Thanks masoud soroush!)
homebrew
? 我最近迁移到pyenv
+pipenv
,只使用macports
进行管理,我遇到了类似的错误。在大多数情况下,用户$PATH
被搞砸了。
- Kambiz 2022-06-03
好了,经过几天的尝试,这就是对我有用的方法。
- 我重新安装了Monterey(不确定它是否必要,但我只是想,我把终端和
$PATH
搞得太乱了)。 - 我通过
brew
而不是从官方网站上安装了python
。 它仍然会返回command not found
的错误。 - 我在终端运行了
echo "alias python=/usr/bin/python3" >> ~/.zshrc
,用python3
来别名python
。
问题解决了。
据我所知,从12.3开始,macOS中已经没有预装的python 2.x了,因此出现了错误。不过我还是觉得很奇怪,尽管有设置,但atom-python-run
会调用python
而不是python3
。
~/.zshrc
。在我的情况下,更便携的解决方案是运行ln -s /opt/homebrew/bin/python3 /usr/local/bin/python
,它不依赖于zsh。
- Ava 2022-05-02
echo "alias python=/usr/bin/python3" >> ~/.zshrc
是正确的命令,所以它在~/.zshrc文件中的前一个内容之前追加了一个新的行。
- Alex Arvanitidis 2022-08-11
/usr/local/bin/python3
。
- Robin 2022-11-04
如果你只是简单地安装了Python 3,只需使用python3
作为命令,而不是只使用python
。在我的例子中,我不得不先通过Homebrew(可执行的brew
)用brew install pyenv
安装pynev
。
但在使用pynev安装Python 2.7.18并使用pyenv global 2.7.18
将其设置为全局版本后,我在试图运行python
时仍然遇到了一个错误。
对我有用的是(因为我已经安装了Python 3),通过改变我的命令来使用python3
,而不只是python
。当然,这对每个可能想使用Python 2的人来说不是一个解决方案。
Python
后面加上3
,使命令生效了!我想知道为什么会这样?我想知道为什么会这样......谁能解释一下?
- MikhailRatner 2022-06-29
atom-python-run
一直在调用python
,而不是python3
,尽管有设置。请确保你在投稿前阅读了问题和已接受的答案。
- Kig 2022-08-04
我刚刚在装有macOS Monterey的新Macbook Pro上遇到了这个问题,下面的方法在我使用Homebrew的情况下起了作用。
在使用Pyenv时,使用alias
是不必要的。用Atom 1.60.0和atom-python-run 0.9.7测试。
安装
pyenv
(https://github.com/pyenv/pyenv#installation)和它的依赖项(https://github.com/pyenv/pyenv/wiki#suggested-build-environment)。brew install pyenv brew install openssl readline sqlite3 xz zlib tcl-tk
安装Python 3.10.6,但我认为其他3.x版本应该也能工作。
pyenv install 3.10.6
根据https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv中的说明,将Pyenv添加到你的shell中。在你的主目录下。
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc
使已安装的 Python 在任何地方都可用 (如果需要,可以在每个项目或文件夹中重写这一点)。
pyenv global 3.10.6
现在,输出结果看起来是这样的。
% which python
/Users/jl/.pyenv/shims/python
% python --version
Python 3.10.6
如果一些脚本仍然失败,请检查你是否如上面第3步所述,将Pyenv添加到了必要的shell启动文件中。
pyenv install 3.10.6
时,都会被提示安装XCode开发者工具,而XCode已经安装了。它说"'clang'命令需要命令行开发工具。"终端中的错误说。make: error: sh -c '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -sdk '' -find make 2> /dev/null' failed with exit code 34304: (null) (errno=No such file or directory)
我在Monterey上。
- Corey 2022-09-30
xcode-select --install
- Jarno Lamberg 2022-10-10
我安装了Python,然后发生了这个错误,我只是运行了一下
echo "alias python=/usr/bin/python3" >> ~/.zshrc
我在macOS Monterey 12.4,Python 3.8.9上工作了。
你应该尝试一下
sudo ln -s /usr/bin/python3 /usr/local/bin/python
解决了我的问题:)。
由于你安装了python3.9>(https://python.org/downloads/),你只需要用python3
而不是python
来运行一切。你不必为了使用它而降级你的python...用3作为python的后缀也能正常工作,i.e. python3
,例如:$ which python3
,python3 --version
,$ python3 script.py
等。
atom-python-run
一直在调用python
而不是python3
,尽管有设置。请确保你在投稿前阅读了问题和已接受的答案。
- Kig 2022-08-04
如果你已经安装了Python 3,请试着用python3 --version
命令。
适用于3.10.8版本
用brew命令安装Python
brew install python@3.10
如果你有.zshrc文件,只需像这样编辑
alias python='python3'
alias pip ='pip'
导出 PATH="/opt/homebrew/opt/python@3.10/libexec/bin:$PATH"
如果你没有.zshrc文件,那么你可以使用.zshrc文件。
cd
vi .zshrc
并复制/粘贴下面这一行
alias python='python3'
alias pip ='pip'
export PATH="/opt/homebrew/opt/python@3.10/libexec/bin:$PATH"
在使用https://www.python.org/ftp/python/3.10.4/python-3.10.4-macos11.pkg
安装后,我得到了zsh: Command not found python
。
我通过配置ENVIRONMENT解决了这个问题。我在.zshrc
文件中添加了一行,alias python=/usr/local/bin/python3.10
,(你必须确定它是真实的路径)。
我的macOS(Apple silicon)。
Darwin Johns-MacBook-Pro.local 21.4.0 Darwin Kernel Version 21.4.0: Mon Feb 21 20:35:58 PST 2022; root:xnu-8020.101.4~2/RELEASE_ARM64_T6000 arm64
alias python=/usr/bin/python3
这个命令是有效的,但每当我们重新启动终端时,需要重新输入。
我在使用苹果硅M1 Pro芯片的新MacOS Ventura时遇到了同样的问题。似乎brew安装到了一个与以前不同的位置,在苹果硅上?
/usr/bin/
文件夹里有一个Python可执行文件,其版本为3.9.6。
所以我用brew
安装了Python,但后来我不得不通过python3
命令来执行它,所以我运行了echo "alias python=/opt/homebrew/bin/python3" >> ~/.zshrc
并重新启动了我的终端。在执行 python
命令时,我被提示需要的 Python 版本。
我有一台MacBook Pro,装有苹果M1芯片和macOS v12.4(Monterey)。
- 我删除了所有的Python版本,并清除了垃圾桶。
- 打开终端,键入"python"。
- 这促使我们对xcode.app进行了更新
- 然后我从python.org上下载了最新版本的Python(2.10.5版)。
- 安装了该版本
- 退出终端机
- 已开通的终端机
- 输入了"Python3"。
现在看来,它在那里是好的。
我使用brew install brew install python@3.9
,安装成功后,我想知道python的版本,我运行命令python --version
,我得到的问题是zsh: command not found: python
。
如果你安装成功,请在终端检查。它将显示你的安装是否有问题,如果没有问题,你只需将命令从python --version
改为python3 --version
。