问题描述
我试图像这样在单个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,我在scripts文件夹中使用__init__.py
进行了工作,但是当我切换回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.py
(或python a.py
)运行python3 a.py
。