我用subprocess
模块调用不同的进程.但是,我有一个问题.
在以下代码中:
callProcess = subprocess.Popen(['ls', '-l'], shell=True)
Run Code Online (Sandbox Code Playgroud)
和
callProcess = subprocess.Popen(['ls', '-l']) # without shell
Run Code Online (Sandbox Code Playgroud)
两者都有效.阅读文档后,我开始知道这shell=True
意味着通过shell执行代码.这意味着在缺席的情况下,该过程将直接启动.
那么我应该更喜欢我的情况 - 我需要运行一个进程并获得其输出.从shell内部或外部调用它有什么好处.
我正在尝试安装ffmpeg
以便在 OpenAI 上使用它来录制视频。我已经使用它安装了它,brew install ffmpeg
但不知何故,当我编译我的代码时,我得到了同样的错误,就像virtualenv
我工作的地方无法识别该包一样。
Python 控制台上的错误:
raise error.DependencyNotInstalled("""Found neither the ffmpeg nor avconv executables. On OS X, you can install ffmpeg via `brew install ffmpeg`. On most Ubuntu variants, `sudo apt-get install ffmpeg` should do it. On Ubuntu 14.04, however, you'll need to install avconv with `sudo apt-get install libav-tools`.""")
Run Code Online (Sandbox Code Playgroud)
但是,当我执行它时,ffmpeg
我得到了以下路径/usr/local/bin/ffmpeg
。
例如,Anaconda似乎需要一个特定的命令来将此包安装到其环境中,virtualenv 也是如此?
提前致谢。