首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在单个python文件中导入python 2和3个模块以进行条件执行。

在单个python文件中导入python 2和3个模块以进行条件执行。
EN

Stack Overflow用户
提问于 2020-08-13 19:28:16
回答 1查看 268关注 0票数 0

我试图在一个python脚本中有条件地执行两个python脚本,如下所示。

代码语言:javascript
复制
# main.py
import sys
if sys.version_info[0] > 2:
    from scripts.script3 import script3
    script3()
else:
    from scripts.script2 import script2
    script2()

这个版本适用于Python3解释器,但是如果我切换到Python2,它就会中断。对于Python2,我使用脚本文件夹中的__init__.py创建了一个工作,但是当我切换回Python3时,它破坏了这个版本。

main.py

/脚本/

脚本2.py (Python2)

脚本3.py (Python3)

有办法做到这一点吗?

谢谢大家。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-13 20:04:19

通过下面的目录布局,我想我完成了您想要做的事情:

代码语言:javascript
复制
.
├── app
│   ├── __init__.py
│   └── a.py
└── scripts
    ├── __init__.py
    ├── b.py
    └── c.py
代码语言:javascript
复制
% python3 -m app.a
Hello, Python 3!
% python -m app.a
Good day, Python 2.

app/a.py看起来是这样的:

代码语言:javascript
复制
import sys

if sys.version_info[0] > 2:
    from scripts.b import fun
else:
    from scripts.c import fun

fun()

编辑:如果您想完全最小化,下面的内容似乎也有效:

代码语言:javascript
复制
.
├── a.py
└── scripts
    ├── __init__.py
    ├── b.py
    └── c.py

然后,您可以使用a.py (或python3 a.py)运行python a.py

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63402016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档