Windows环境下如何在package.json的npm脚本中激活虚拟环境?
Windows下npm脚本中激活Python虚拟环境的解决方案
问题根源
Windows下直接在npm脚本里用virtualenv命令报错,大概率是因为Python的Scripts目录没加到系统PATH,或者npm的执行环境找不到virtualenv的可执行文件;另外source是Linux/macOS的语法,Windows不兼容,直接调用activate.bat不加call的话,激活环境的操作不会延续到后续的nodemon命令。
修正后的脚本配置
直接用Python的-m参数调用virtualenv(避免路径问题),再用call命令激活虚拟环境,确保后续命令在虚拟环境中执行:
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "python -m virtualenv ../Scripts/venv && call ../Scripts/venv/Scripts/activate.bat && nodemon server.js" }
额外注意事项
- 如果你系统里Python3和Python2共存,把
python换成python3或者py -3,确保调用的是目标版本的Python - 要是虚拟环境已经创建过,可以删掉
python -m virtualenv ../Scripts/venv &&这部分,避免每次运行都重新创建环境 - 检查虚拟环境的路径是否正确,
../Scripts/venv是相对于项目根目录的上级Scripts文件夹,别写错路径导致找不到activate.bat
内容的提问来源于stack exchange,提问作者Elias Knudsen
相关产品推荐
相关产品推荐

