NPM安装不允许我指定Python版本



我试图用npm install -g <package-name>安装的自定义NPM包出现了新问题。这个包装有一个";安装后";步骤,该步骤运行pip install。这些要求是针对Python 3包的,但pip安装失败,因为它在Python 2:中运行

> <package-name> postinstall /usr/local/lib/node_modules/<package-name>
> pip install --upgrade -r ./scripts/requirements.txt
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. [...removing for clarity...]
Defaulting to user installation because normal site-packages is not writeable
[...]
npm ERR! Failed at the <package-name>@<version> postinstall script.

基于这个问题,我尝试在Python3venv环境中运行全局安装,并尝试使用npm config set python python3.8将npm指向Python3。似乎没有什么能强制postinstall使用Python 3版本的pip运行,甚至没有直接指定Python路径。

仅供参考:我最初的问题被关闭了,因为它与上面链接的问题相似,但正如我所说,这对我没有帮助。此外,我在macOS Mojave上。

此外,当我在包的目录中本地运行npm run postinstall时,我会得到同样的错误。如果我只是运行pip install行,它工作得很好。这里使用npm run会改变行为,但我不确定它是什么

这是我公司维护的内部软件包。pip安装线是唯一的安装后步骤。它安装了一个需求列表,其中包括matplotlib>=3.0(所以Python 3是必需的——这通常是它失败的地方(。我将pip install更改为python -m pip install,它实际上使用了正确的python版本,然后在matplotlib设置中失败。我认为这是关键。

您尝试过以下命令:

echo "alias python=/usr/local/bin/python3.7" >> ~/.zshrc
echo "alias python=/usr/local/bin/python3.7" >> ~/.bashrc

或者使用酿造?

brew update && brew upgrade python

把这个别名放在你的.rc文件上,如果你没有:

alias python=/usr/local/bin/python3

看到这个页面,他们有很多技巧:https://opensource.com/article/19/5/python-3-default-mac

最新更新