是否可以将我在python 2.7中编写的模块导入到我编写的3.4程序中?
我已经尝试过执行此操作,并且如预期的那样SyntaxError: Invalid Syntax
,一旦看到第一个print "string literal"
语句而不是3.4的语句,它就会抛出a print()
。还有一些其他不兼容的代码段,例如import Tkinter
代替tkinter
。2.7模块必须保留在2.7中,因为它的依赖项之一似乎在3.X(switchvox api的python绑定)中不起作用。
我正在构建一个显示应用程序,该应用程序将调用其配置文件中指定的任何模块,并在tkinter小部件中显示该模块的输出(字符串,或将来可能是字典)。我的程序需要做的就是导入2.7模块并调用一个函数一次(每x秒)以接收该数据字符串。
您可以使python 2.7代码与3.4兼容-通过这种方式,您可以从3.4导入它并使用相同的类和函数。
为了运行,您必须使用python 2.7-使用子进程在不同的进程上运行它。假设main27.py具有以下行:
print 1
要使用子进程运行它,请执行以下操作:
import subprocess
cmd = [r'c:\python27\python.exe', 'main27.py']
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate()
在stdout中,您将得到以下输出:
1
对于更复杂的数据交换,您可以使用json或pickle使用文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句