conda create --name my_env python=3.9 nodejs
conda activate my_env
# optionally, also install yarn
conda install -c conda-forge yarn
##############################################
# check it works
# python related
pip --version
python --version
# nodejs related
yarn --version
npm --version
node --version
##############################################
# verify they're inside the conda environment
# python related
which pip
which python
# nodejs related
which yarn
which npm
which node
8条答案
按热度按时间hjzp0vay1#
nodeenv-node.js的虚拟环境(模拟virtualenv)
ki0zmccv2#
如果系统级的npm包是你的主要问题,那么也许可以考虑在npm中使用非常酷的“bundle”命令,这更接近于冻结gems或者在rails中使用bundler,而不是rvm。
这非常简单,只需创建一个package.json文件:
然后运行:
或者如果你的npm版本是〉= 1.0运行:
冻结到供应商目录。然后用途:
gywdnpxw3#
还有一些Node版本管理系统可以提供帮助。
查看Nave https://github.com/isaacs/nave
NVM也可用于https://github.com/creationix/nvm
还有一个叫做n https://github.com/visionmedia/n
sczxawaw4#
你并不总是需要全局安装依赖项,通常推荐这样做,因为这样你就可以使用npm包提供的命令,但是如果你在本地安装它(在
node_modules
目录中),您也可以使用这些命令,它们只会出现在node_modules/.bin/
目录中,因此您必须键入node_modules/.bin/<command>
,这很烦人,当然,您可以将此路径添加到PATH
环境变量中:然后您只需输入
<command>
,它就可以工作了!实际上有一个npm命令可以返回
.bin
目录的绝对路径:当你在项目的子目录中时,这个命令同样有效,它将返回在其父目录中找到的第一个
node_modules/.bin
目录。您可以在
.bashrc
中添加此别名,以自动将.bin/
目录添加到PATH
:所以当你在一个根目录下有
node_modules/
目录的项目目录下时,你可以输入nodebin
,然后你就可以使用.bin/
目录下的所有命令了!编辑:
现在,您有一个软件包可以为您解决所有这些问题:npx。然后您只需在命令前面加上
npx
,如下所示:npx <command>
.请查看:https://docs.npmjs.com/cli/v7/commands/npx
ekqde3dh5#
bxjx的回答在概念上是正确的,但是,请注意bundle命令不再使用目录,它 * 总是 * 将包放到
node_modules
文件夹中,以便npm知道以后在哪里找到它们(并且可以避免重复安装依赖项)。任何解决方案都可能涉及“系统范围”安装npm和nave(也就是说,在您的
PATH
中,它可能在~
的某个地方),但随后只在虚拟环境中安装您的 * 特定依赖项 *。我对github问题的回应更加彻底。
tl;dr:用例是有效的和有帮助的,虽然它大部分都在那里,但它并没有像它应该的那样好。我们应该确保仔细考虑它并正确地做它。
稍后更新:如果您需要更像virtualEnv东西,请查看Nave:https://github.com/isaacs/nave
luaexgnf6#
看起来有一个更好的办法
Installing Node.js and npm into a Python Virtualenv
现在我可以使用节点工具而不会弄乱全局bin环境
cig3rfwq7#
您可以按照here的说明使用miniconda。
这允许你在一个单独的Conda环境中合并Python和NodeJS,独立于全局系统完成所有的开发工作:
bakd9h0s8#
如果你喜欢简单,我真心推荐visionmedia的n,再简单不过了!
https://github.com/visionmedia/n