【发布时间】:2017-10-25 21:47:10
【问题描述】:
在运行 Python 3.x 的 python 脚本中,导入另一个运行 Python 2.7 的 python 脚本,是否可以在导入该特定脚本时告诉程序使用 Python 2.7 解释器?
在这个使用 Python 3.x 运行的“mainfile.py”中
导入另一个文件27“anotherfile27.py”一导入,一切都会自动运行,“anotherfile27.py”中的任何功能都不需要在“mainfile.py”中重用。只会生成几个 .csv 脚本以供以后使用。
是否可以在“anotherfile27.py”或“mainfile.py”中编写一行代码来告诉程序仅在运行“anotherfile27.py”时将解释器从 Python 3 更改为 Python 2.7?
【问题讨论】:
-
您可以将其他脚本作为子进程运行吗?
-
您可以使用
subprocess模块执行它。只需指定您想要的解释器以及 2.7 .py 文件名作为参数。你不能通过import来做到这一点。 -
直接 - 简短的回答是“否”。
import将模块加载并编译到当前解释器中...如果不能轻松移植另一个模块,则必须找到另一种方法。 -
它听起来您可能只想使用
subprocess。您只需要使用正确的解释器(很容易通过提供二进制文件的完整路径)。 -
虽然
subprocess并在之后获取文件是一个非常通用且可行的解决方案 - 取决于您在其他脚本中执行的操作,这很可能是浪费。例如,如果您正在生成大型 CSV 文件,而不必对其应用复杂的处理/分组,并且您只需要逐行读取它们,那么编写它们以再次读取它们似乎有点浪费。跨度>
标签: python python-2.7 python-3.x python-import