python - 子进程 Popen 运行 python 命令
问题描述
我需要在 Popen 中运行 python 命令。问题是命令需要在 python3 中运行并且我需要它是可移植的,这意味着我不能python3
在每种情况下都使用别名......
我的计算机python
已经是正确的版本,而其他计算机的版本是正确的python3
。我试图#!/usr/bin python3
在文件的开头插入然后运行,python
但它没有用。
我无法修改环境变量以更改python3
为python
. 我想知道是否有一种方法可以检查我需要使用哪个,或者有一种方法可以在 Popen 命令中将其更改python3
为ONLY ...python
我试图运行的 Popen 命令非常简单,不,我不能只导入文件并用作类......它需要通过 Popen 运行。此外,virtualenv 或类似的也不是一个选项。
subprocess.Popen(['python', 'main.py'], shell=True, universal_newlines=True)
解决方案
shebang - 显示要使用的解释器的初始行,例如#!/usr/bin/python
or #!/usr/bin/python3
- 仅在您自己没有明确选择解释器时才受到尊重:如果您运行python foo.py
,则操作系统正在调用特定的 Python 解释器并将其foo.py
作为参数传递(它解释为它应该运行的脚本的名称);而当你运行时./foo.py
,你是在告诉操作系统本身找出使用哪个解释器来运行foo.py
,它通过查看 shebang 来完成。
要将其留给操作系统来选择,只需明确指定脚本的名称:
subprocess.Popen(['./main.py'], universal_newlines=True)
推荐阅读
- jquery - 将可放置的 div 拖到背景图像上的特定点
- php - fwrite php,变量为字符串
- docker-compose - 当脚本试图在 Dockerfile 中查找 .sh 时出现错误“未找到”
- c++ - 如何在隐藏源文件的 Linux 中编译 C++ 代码?
- python - 在 Windows 操作系统中运行 pyspark (Anaconda - Spyder)
- css - css - 最新 chrome 中的 webkit-text-fill-color 问题
- c# - C#输入键,一键点击,所以按住不响应
- sql-server - 对于每个容器在返回 0 行时没有失败
- jquery - 使用本地存储中的数据创建提交表单
- linux - Docker 镜像创建(weblogic 和 java)