【发布时间】:2014-08-23 16:29:35
【问题描述】:
问题:
是否可以将我在 python 2.7 中编写的模块导入到我编写的 3.4 程序中?
背景:
我已经尝试过这样做,并且正如预期的那样,一旦它看到第一个 print "string literal" 语句而不是 3.4 的 print(),它就会抛出一个 SyntaxError: Invalid Syntax。还有一些额外的不兼容代码 sn-ps,例如 import Tkinter 而不是 tkinter。 2.7 模块必须保留在 2.7 中,因为其中一个依赖项似乎在 3.X(switchvox api 的 python 绑定)中不起作用。
我正在构建一个显示应用程序,该应用程序将调用其配置文件中指定的任何模块,并在 tkinter 小部件中显示该模块的输出(一个字符串,或者将来可能是一个字典)。我的程序需要做的就是导入 2.7 模块并调用一个函数一次(每 x 秒)以接收该数据字符串。
【问题讨论】:
-
如果其中一个 依赖项 没有在 Python 3 中运行,那么尝试移植您的模块是没有意义的。
-
@MartijnPieters 你是指原3.4调用程序的依赖,还是被调用的2.7程序的依赖,还是两者之一?
-
2.7 模块不是程序。它是只有 Python 2.7 解释器可以运行的 Python 代码。导入它意味着它需要能够在 Python 3.4 too 上运行。那是 certainly possible,尤其是 supporting module,但如果 2.7 模块具有不在 3 中运行的依赖项,那么所有的赌注都没有了。
-
你的程序有什么理由必须在 Python 3.4 上运行吗?为什么不在 2.7 中运行它?
-
@ColinAtkinson 你说得对,我正在权衡那个选项。最初我们只是认为从 3.4 开始会更好,因为它更新并且将来可能会得到更好的支持
标签: python python-2.7 python-3.x import