强制子进程使用 Python 3

Coolio2654

所以,我试图编写一个 Python 脚本,用于subprocess调用同一目录中的另一个 Python 脚本。这一切都很顺利,直到第二个脚本中的 import 语句被一个 Python 3-only 库访问,并且由于脚本是使用 打开的subprocess,而后者又使用 Python 2,所以ImportError发生了。

subprocess具体来说Popen()我如何强制使用 Python 3 打开脚本?网上好像没有这方面的建议。

编辑

虽然我总是默认发布 MWE,但对于这个问题,我认为这是不必要的,但无论如何,当我开始发布它时,我突然想到使用“python3”而不仅仅是“python”,

stream = subprocess.Popen(['python3', 'app.py'])

现在该应用程序可以运行了。奇怪的是,我自己只安装了一个版本的 Python(3.7),并且python重定向到python3,所以很奇怪我不得不手动指定python3.

埃里克·杜米尼尔

这是强制使用 Python3 运行脚本的方法:

#! /usr/bin/python3

import sys, subprocess

if sys.version_info[:2] < (3, 0):
    # FORCE PYTHON3
    code = subprocess.check_call(['python3'] + sys.argv)
    raise SystemExit(code)

print("Using Python v%d.%d" % sys.version_info[:2])

在 Bash 中运行的示例:

> python3 force_python3.py                                                                                                                         
Using Python v3.7

> python2 force_python3.py                                                                                                                         
Using Python v3.7

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在python 3中使用子进程

来自分类Dev

如何使用子进程强制python释放内存?

来自分类Dev

强制Celery使用Python 3

来自分类Dev

检查子进程python3的输出

来自分类Dev

为什么我不能在python3子进程中使用导出的bash函数?

来自分类Dev

如何在python3中使用子进程编写命令

来自分类Dev

使用crontab的Python子进程

来自分类Dev

Oracle Linux中的python3子进程(wget -o)

来自分类Dev

通过python3子进程发送管道命令

来自分类Dev

路由挂起中的Python3 Flask asyncio子进程

来自分类Dev

使用Python立即启动Python子进程

来自分类Dev

使用Python立即启动Python子进程

来自分类Dev

在Python3中混合使用并行和子进程,会导致CPU效率随着时间降低吗?

来自分类Dev

使用python的子进程模块打开python进程

来自分类Dev

使用Python子进程运行npm命令

来自分类Dev

Python:使用子进程发送postgres密码

来自分类Dev

Python子进程.Popen使用git pager

来自分类Dev

在python子进程中使用setenv

来自分类Dev

使用Python的子进程时的异常处理

来自分类Dev

使用子进程python执行SQLCMD

来自分类Dev

使用Python的子进程打印密码提示

来自分类Dev

Python对Popen子进程使用超时

来自分类Dev

Python的子进程使用什么外壳?

来自分类Dev

使用python子进程运行bash命令

来自分类Dev

使用python子进程的Wget问题

来自分类Dev

使用子进程python执行SQLCMD

来自分类Dev

在python的子进程中使用撇号

来自分类Dev

使用Python子进程检测进程是否干净退出

来自分类Dev

Linux中的Python:使用Shell杀死进程和子进程