找不到 Python 可执行文件“python”

Posted

技术标签:

【中文标题】找不到 Python 可执行文件“python”【英文标题】:Can't find Python executable "python" 【发布时间】:2014-06-27 14:03:39 【问题描述】:

当我用npm 安装iconv 时出现以下错误:

iconv@2.1.0 安装 /root/Dropbox/nodeApps/nodeApp/node_modules/iconv 节点gyp重建

gyp ERR! configure error 
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack     at failNoPython (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:103:14)
gyp ERR! stack     at /usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:42:11
gyp ERR! stack     at F (/usr/local/lib/node_modules/npm/node_modules/which/which.js:43:25)
gyp ERR! stack     at E (/usr/local/lib/node_modules/npm/node_modules/which/which.js:46:29)
gyp ERR! stack     at /usr/local/lib/node_modules/npm/node_modules/which/which.js:57:16
gyp ERR! stack     at Object.oncomplete (fs.js:107:15)
gyp ERR! System Linux 3.8.0-19-generic
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /root/Dropbox/nodeApps/nodeApp/node_modules/iconv
gyp ERR! node -v v0.10.28
gyp ERR! node-gyp -v v0.13.0
gyp ERR! not ok 

npm ERR! iconv@2.1.0 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the iconv@2.1.0 install script.
npm ERR! This is most likely a problem with the iconv package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls iconv
npm ERR! There is likely additional logging output above.
npm ERR! System Linux 3.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "i"
npm ERR! cwd /root/Dropbox/nodeApps/nodeApp
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.10
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /root/Dropbox/nodeApps/nodeApp/npm-debug.log
npm ERR! not ok code 0

虽然我安装了 python 并且可以从控制台运行它:

# python
Python 2.7.3 (default, May  9 2014, 12:18:32) 
[GCC 4.8.2] on linux2

并在~/.bashrc中设置PATH

export PYTHONPATH=$PYTHONPATH:/Python-2.7.3
export PATH=$PATH:/Python-2.7.3

完成. ~/.bashrc

【问题讨论】:

问题是因为~/.bashrc在ssh登录时没有加载。我把PATH vars 放到~/.bash_profile 上就可以了 我在 ~/.zshrc 中设置了 PYTHON var,但在重新启动 iTerm 后一直出现错误,所以我最终得到了这个符号链接黑客:$ which python /usr/bin/python $ sudo ln - s /usr/bin/python /usr/local/bin/python 【参考方案1】:

在 bash 会话中,您只需键入 python 并获得有效响应,键入 which python 并记下 python 二进制文件的完整路径位置。获取该位置并将其放入您的 PYTHONPATHPATH 环境变量中,除非最后没有 python

例如,which python 给我:

/usr/local/bin/python

所以我会写:

export PYTHONPATH=$PYTHONPATH:/usr/local/bin
export PATH=$PATH:/usr/local/bin

在我的~/.bashrc.

【讨论】:

-bash: :/usr/bin: No such file or directory 确保您使用的是 sudo -s【参考方案2】:

问题是因为~/.bashrc 没有在 ssh 登录时加载。我把PATH vars 放到~/.bash_profile 上就可以了

【讨论】:

【参考方案3】:

对于在 Ubuntu 16.04 上遇到此问题的任何人...node-gyp 无法使用 Python 3.5.X,这似乎是 16.04 附带的默认设置。我在某处读到 16.04 也应该与 Python2 一起发布,但我在安装时找不到它。

我通过以下方式解决了上述问题:

apt-get update     
apt-get install python2.7    
ln -s /usr/bin/python2.7 /usr/bin/python 

现在当node-gyp 寻找python 时,它会正确安装并加载您的Python2.7。

【讨论】:

您不能将ln 放入 bashrc。它需要 sudo 访问权限。你如何永久地做到这一点? @towi_parallelism 您可以设置PYTHON 环境变量。这样做:export PYTHON="$(which python2.7)"。 node-gyp 在短短 5 个月内退役时仍然锁定到 Python v2.7 似乎很愚蠢...... 我对这个答案投了赞成票。我正在使用未安装 python 2.7 的 ubuntu 20.04。主要的python版本是3.8。我正在使用 Angular cli 9。在 npm install " import sys; print "%s.%s.%s" % sys.version_info[:3];" 之后出现此错误并发现在较新版本的 python 中有语法变化。基于此,我安装了 pyhon 2.7 并将 npm config python 路径设置为 2.7。在那之后我工作了【参考方案4】:

有一种简单又安全的方法 将其放入~/.bashrc~/.bash_aliases 文件中:

alias python=python3

在文件中添加以上内容后,运行source ~/.bashrcsource ~/.bash_aliases

这个解决方案适用于我的 Ubuntu 看原答案here

【讨论】:

【参考方案5】:

安装python2.7。 apt install python2

【讨论】:

问题中明确指出python2.7已经安装,可以使用python从shell运行。

以上是关于找不到 Python 可执行文件“python”的主要内容,如果未能解决你的问题,请参考以下文章

npm - “找不到 Python 可执行文件“python”,您可以设置 PYTHON 环境变量。”

text 错误:找不到Python可执行文件“python”,可以设置PYTHON env变量

找不到 Python 可执行文件“/path/to/executable/python2.7”,可以设置 PYTHON env 变量

从 groovy 脚本运行 gsutil:找不到 Python 可执行文件

运行docker容器时出错:启动容器进程导致“exec:”python “:$ PATH中找不到可执行文件”:未知

安装 gulp-converter-tjs 时找不到 Python 可执行文件