我需要在我的脚本中直接从PyPi安装一个包.也许有一些模块或distutils(distribute,pip等)功能,它允许我只是执行像pypi.install('requests')和请求将被安装到我的virtualenv.
我用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内部或外部调用它有什么好处.
我正在尝试为一个名为Zulip的开源项目构建python api,并且我一直遇到如下截图所示的相同问题.
我正在运行python3,我的pip版本是10.0.0.有问题的文件setup.py和乱码的代码pip.main()是访问属性以安装包时.
现在,我知道这个构建应该成功,因为它是一个开源项目,但我一直在努力解决依赖问题pip.main().
任何帮助将不胜感激.