【发布时间】:2018-08-16 12:39:22
【问题描述】:
我主要是 C++ 开发人员,尝试使用 python 为我完成某些任务。 我在 python 3.6 中制作了一个 python 模块,并使用以下命令在 windows 7 中预编译了它
python -m py_compile myfile.py
使用来自this 链接的信息。我创建了“myfile.pyc”
现在我想在使用 python 2.7 的 python 文件中使用它 所以,我使用来自this 和this 的信息并写
mod=imp.load_source('myfile.func', 'c:/folder1/folder2/myfile.pyc')
但上面的说法给了我例外
[name 'o' is not defined]
这是因为我在 3.6 中使用预编译并在 2.7 中使用吗?
我错过了什么
【问题讨论】:
-
为什么要预编译代码?将代码直接用作模块并让 python 解释器缓存并为您编译它可能更容易。同样一般 3.X 和 2.X 不兼容,但我不知道它们的字节码是否兼容,但它可能不兼容
-
我问你为什么预编译它主要是因为预编译只节省编译时间,代码本身的运行速度与你定期导入它的速度相同,然后两个代码库将在同一个 python 上编译环境
-
@GarriganStafford :实际上,我编写的代码包含一些算法,这些算法是我正在工作的组织的 IP。我插入lib的代码是一些开源代码。因此,预编译/加密。
-
好的,那么您很可能必须确保您使用的 python 版本与库相同。另请查看我所说的关于 load_compiled 的内容,这有帮助吗?
标签: python import pre-compilation