在Python virtualenv中安装npm包

时间:2016-09-19 06:37:00

标签: python npm installation pip

我想在Python virtualenv中安装一些npm软件包。例如:

到目前为止,我只找到了在virtualenv中安装这些软件的复杂方法:为它们创建一个python包。

是否有更简单的方法可以在Python virtualenv中安装npm软件包?

3 个答案:

答案 0 :(得分:9)

NPM和pip彼此无关,因此您将无法在virtualenv中安装NPM包。

但是:NPM installs packages in ./node_modules

因此,如果您创建了virtualenv并在其中安装了npm模块

virtualenv myproj
cd myproj
source bin/activate
npm install pdfjs-dist jquery-ui

您最终会得到myproj/node_modules中的节点包,这与“在virtualenv中安装NPM”非常接近。

答案 1 :(得分:7)

您可以使用nodeenv在python virtuaenv上安装NPM软件包。

source ./bin/activate
pip install nodeenv
nodeenv -p

要测试是否有效:

npm install -g npm
npm -v

来源:

https://pypi.org/project/nodeenv/

https://calvinx.com/2013/07/11/python-virtualenv-with-node-environment-via-nodeenv/

答案 2 :(得分:3)

就像@Josir所建议的那样,我过去曾经使用nodeenv,但是当我想将节点模块放入项目的venv文件夹中时遇到一个问题,如{{3}中所述}。

简而言之,将package.json放入venv会导致无法使用npx ...,除非它是从venv文件夹运行的,而将package.json放入venv/lib并从那里运行npm install可以使用项目中任何文件夹的npx ...

这是由于将NODE_PATH环境变量设置为<myproject>/venv/lib/node_modules

我创建了一个脚本来自动执行此操作,

python -m venv venv
source venv/bin/activate
pip install requirements.txt
cp package.json venv/lib
cd venv/lib
nodeenv -p
npm install --no-optional