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

一个韦伯

我正在尝试在单个 python 脚本中有条件地执行两个 python 脚本,就像这样。

# main.py
import sys
if sys.version_info[0] > 2:
    from scripts.script3 import script3
    script3()
else:
    from scripts.script2 import script2
    script2()

此版本适用于 Python3 解释器,但如果我切换到 Python 2,它会中断。对于 Python2,我__init__.py在脚本文件夹中使用 a 创建了一个解决方法,但是当我切换回 Python3 时,它破坏了该版本。

main.py
/scripts/
├── script2.py (Python2)
└── script3.py (Python3)

有没有办法实现这一目标?

谢谢大家。

朱莉娅

通过以下目录布局,我想我完成了你想做的事情:

.
├── app
│   ├── __init__.py
│   └── a.py
└── scripts
    ├── __init__.py
    ├── b.py
    └── c.py
% python3 -m app.a
Hello, Python 3!
% python -m app.a
Good day, Python 2.

app/a.py 看起来像这样:

import sys

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

fun()

编辑:如果你想完全最小化,以下似乎也有效:

.
├── a.py
└── scripts
    ├── __init__.py
    ├── b.py
    └── c.py

然后你就可以a.pypython a.py(或python3 a.py)运行

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章