Python 执行子流程时未找到Nvm

Python 执行子流程时未找到Nvm,python,subprocess,nvm,Python,Subprocess,Nvm,我正在尝试执行一个简单的命令: p = subprocess.Popen("nvm use 0.12.7", cwd="../tags/" + "2.0.4", stdout=subprocess.PIPE, shell=True) stdout, stderr = p.communicate() 我得到: /bin/sh: 1: nvm: not found 我不知道为什么会发生这种情况,它通常适用于其他命令,nvm命令有什么特别之处?您的PATH变量似乎不包括“nvm”程序的位置。此变量

我正在尝试执行一个简单的命令:

p = subprocess.Popen("nvm use 0.12.7", cwd="../tags/" + "2.0.4", stdout=subprocess.PIPE, shell=True)
stdout, stderr = p.communicate()
我得到:

/bin/sh: 1: nvm: not found

我不知道为什么会发生这种情况,它通常适用于其他命令,nvm命令有什么特别之处?

您的PATH变量似乎不包括“nvm”程序的位置。此变量包含一个目录列表,您的操作系统在尝试查找程序位置时会查找这些目录


您应该使用
export PATH=$PATH:/PATH/to/nvm
将“nvm”添加到路径中,通过
sys.PATH
添加它,或者在运行子流程命令时指定完整路径。

我在.bashrc
export nvm\u DIR=“/home/trufa/.nvm”
您的.bashrc是否也有
export PATH=$PATH:$nvm\u DIR
?它没有,我添加了它,做了一个
sorce~/.bashrc
,但仍然没有任何结果:(当您在Popen调用中指定完整路径时会发生什么?嗯,这给了我更多的线索,我不知道该路径是什么,它似乎是几个sh脚本,不确定如何包含整个路径。