【问题标题】:Nvm not found when executing subprocess执行子进程时找不到 Nvm
【发布时间】:2016-05-04 21:23:44
【问题描述】:

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

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

【问题讨论】:

    标签: python subprocess nvm


    【解决方案1】:

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

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

    【讨论】:

    • 我的 .bashrc 中有 export NVM_DIR="/home/trufa/.nvm"
    • 你的.bashrc 是否也有export PATH=$PATH:$NVM_DIR
    • 它没有,我已经添加了它,做了一个sorce ~/.bashrc,但仍然没有:(
    • 在 Popen 调用中指定完整路径时会发生什么?
    • 嗯,这给了我一些线索,我不知道那个路径是什么,似乎是 sever sh 脚本,不知道如何包含整个路径。
    猜你喜欢
    • 2023-03-08
    • 2013-07-14
    • 2016-02-25
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多