Python 3.x 在单个python文件中导入Python2和Python3模块,以便有条件地执行
我试图在一个python脚本中有条件地执行两个python脚本,如下所示Python 3.x 在单个python文件中导入Python2和Python3模块,以便有条件地执行,python-3.x,python-2.7,function,import,Python 3.x,Python 2.7,Function,Import,我试图在一个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() 这个版本可以使用Python 3解释器,但是如果我切换到Python 2,它就会崩溃。对于P
# main.py
import sys
if sys.version_info[0] > 2:
from scripts.script3 import script3
script3()
else:
from scripts.script2 import script2
script2()
这个版本可以使用Python 3解释器,但是如果我切换到Python 2,它就会崩溃。对于Python2,我使用scripts文件夹中的\uuuu init\uuuuu.py
创建了一个变通方法,但当我切换回Python3时,它破坏了该版本
main.py/脚本/
├── script2.py(Python2)
└── script3.py(Python3) 有没有办法做到这一点
谢谢大家。通过以下目录布局,我想我完成了您想要做的事情:
.
├── app
│ ├── __init__.py
│ └── a.py
└── scripts
├── __init__.py
├── b.py
└── c.py
%python3-m app.a
你好,Python 3!
%python-m app.a
你好,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
然后您可以使用
python a.py
(或python3 a.py
)运行a.py
。您的初始化文件都是空的吗?我没有收到名为“scripts”的模块。如果我不创建应用程序目录,并将脚本\uuuu init\uuuuuuuuuuuupy
留空,它对我有效。谢谢你的帮助