我试图用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