执行子进程时出现“未找到Nvm”的错误

5

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

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 命令有什么特殊之处吗?

1个回答

0
你的 PATH 变量似乎没有包括 'nvm' 程序的位置。这个变量包含一个目录列表,当操作系统尝试查找程序的位置时,它会查找这个列表中的目录。
你应该使用 export PATH=$PATH:/path/to/nvm 将 'nvm' 添加到你的 PATH 中,通过 sys.path 添加它,或者在运行子进程命令时指定完整路径。

1
我在我的.bashrc文件中有这样一行代码:export NVM_DIR="/home/trufa/.nvm" - Trufa
你的 .bashrc 文件中是否也有 export PATH=$PATH:$NVM_DIR - Alex Alifimoff
没有起作用,我已经添加了它,执行了 source ~/.bashrc,但仍然没有任何反应 :( - Trufa
当您在Popen调用中指定完整路径时会发生什么? - Alex Alifimoff
嗯,这给了我更多的线索,我不知道那是什么路径,它似乎是一些服务器脚本,不确定如何包含整个路径。 - Trufa
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接