有一些npm软件包我想要在Python虚拟环境中安装,例如:
到目前为止,我只找到了一个复杂的方法来让它们可以在虚拟环境下安装:为它们创建Python包。
有没有更简单的方法来在Python虚拟环境中安装npm软件包呢?
有一些npm软件包我想要在Python虚拟环境中安装,例如:
到目前为止,我只找到了一个复杂的方法来让它们可以在虚拟环境下安装:为它们创建Python包。
有没有更简单的方法来在Python虚拟环境中安装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/
NPM和pip彼此无关,因此您将无法在虚拟环境中安装NPM包。
因此,如果您在其中创建了一个虚拟环境并安装了npm模块
virtualenv myproj
cd myproj
source bin/activate
npm install pdfjs-dist jquery-ui
最终会在myproj/node_modules
中得到Node Packages,这是最接近“在virtualenv内安装NPM”的方法。
virtualenv
环境,为Node模块创建一个node_modules
环境。 - Kos如@Josir所建议,我过去曾经使用nodeenv
,但当我想要将节点模块放在项目的venv
文件夹中时(如此问题中所解释的那样),遇到了问题。
简而言之,在venv
中放置一个package.json
会导致无法使用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