Python 激活虚拟环境不会';不能从npm命令工作
在我的Python 激活虚拟环境不会';不能从npm命令工作,python,node.js,shell,npm,pip,Python,Node.js,Shell,Npm,Pip,在我的package.json中,我有一个脚本来激活我的python虚拟环境(我的项目同时使用python和Nodejs)。我基本上想从npm激活我的虚拟环境 "scripts": { "babel-node": "babel-node --stage 0 --ignore='foo|bar|baz'", "test": "export NODE_ENV='test'; ./node_modules/mocha/bin/mocha --compilers js:babel/reg
package.json
中,我有一个脚本来激活我的python虚拟环境(我的项目同时使用python和Nodejs)。我基本上想从npm激活我的虚拟环境
"scripts": {
"babel-node": "babel-node --stage 0 --ignore='foo|bar|baz'",
"test": "export NODE_ENV='test'; ./node_modules/mocha/bin/mocha --compilers js:babel/register server/test/index.js",
"dev": "./node_modules/nodemon/bin/nodemon.js --exec npm run babel-node -- server/index.js",
"activate": "source ./venv/bin/activate",
"import": "python scraper -g -i -db caltrain_test && python ./scraper -g -i",
"start": "node ./server",
"docs": "cp README.md docs/index.md && ./node_modules/docco/bin/docco --layout=linear ./docs/index.md"
},
如果我直接从命令行激活虚拟环境,它可以工作:
jorgesilvajetter at Jorges-MacBook-Pro-2 in ~/Sites/2015/caltrain-api on master [!?$]
$ source venv/bin/activate
(venv) // This means that it worked!
但是,如果我从npm运行相同的命令,则该命令不起作用:
jorgesilvajetter at Jorges-MacBook-Pro-2 in ~/Sites/2015/caltrain-api on master [!?$]
$ npm run activate
> caltrain-api@0.0.3 activate /Users/jorgesilvajetter/Sites/2015/caltrain-api
> source ./venv/bin/activate
是否可以通过npm命令激活我的虚拟环境?似乎我对虚拟环境如何工作或npm如何执行脚本有些误解。也许,它正在另一个会话/选项卡中运行脚本?来自“通过将该行作为脚本参数传递给sh来运行脚本”。因此,尽管您使用的是源代码,但它位于新的子shell中
请注意:npm将/node\u modules/.bin
添加到npm脚本的路径
,因此在npm脚本中,您可以只编写“nodemon”
而不是”。node\u modules/nodemon/bin/nodemon.js“
或“.node_modules/.bin/nodemon
。npm知道用正确的脚本填充/node\u modules/.bin
,因为包作者在其包.json中指定了“bin”
属性,这很有意义。是的,我知道第二部分。我想我只是喜欢这个符号,因为它清楚地表明,nodemon
是项目的一个依赖项,不需要全局安装,但是如果你愿意,你可以不同意我的意见。你真的解决了这个问题吗?我遇到了同样的问题。我希望我能将npm用于所有看起来不可能的事情:(