从显式路径导入 f2py .pyd(Bad magic number ImportError)
Importing a f2py .pyd from an explicit path (Bad magic number ImportError)
我通过 f2py
从一些 Fortran 代码构建了一个 .pyd 模块,我们可以称之为 foo.pyd
。我想将其导入 python 代码,我们可以将其称为 main.py
。当我导入为:
import foo
一切正常。但是,因为这个 python 最终会 'frozen' 成一个可执行文件,而且我必须将 foo.pyd
与 main.exe
一起打包,所以我需要指定一个 [=36] =]显式 从中导入的路径。
因此,我尝试使用 imp
模块,特别是 imp.load_compiled()
。当我尝试时:
import imp
foo = imp.load_compiled('foo','foo.pyd')
甚至:
foo = imp.load_compiled('foo','./foo.pyd')
我收到以下错误:
ImportError: Bad magic number in foo.pyd
这个错误似乎是由于试图构建一个 Python 分区,然后导入另一个分区。但是,我对两者使用相同的 Python, 并且它适用于标准 import
命令!
有没有人遇到过这种情况,and/or 可能有一些指导?非常感谢您提供的任何帮助或建议。
imp.load_compiled()
用于 .pyc
个文件。您正在寻找 imp.load_dynamic()
。或者,您可以在 sys.path
中添加您想要的目录,之后常规导入将起作用。
我通过 f2py
从一些 Fortran 代码构建了一个 .pyd 模块,我们可以称之为 foo.pyd
。我想将其导入 python 代码,我们可以将其称为 main.py
。当我导入为:
import foo
一切正常。但是,因为这个 python 最终会 'frozen' 成一个可执行文件,而且我必须将 foo.pyd
与 main.exe
一起打包,所以我需要指定一个 [=36] =]显式 从中导入的路径。
因此,我尝试使用 imp
模块,特别是 imp.load_compiled()
。当我尝试时:
import imp
foo = imp.load_compiled('foo','foo.pyd')
甚至:
foo = imp.load_compiled('foo','./foo.pyd')
我收到以下错误:
ImportError: Bad magic number in foo.pyd
这个错误似乎是由于试图构建一个 Python 分区,然后导入另一个分区。但是,我对两者使用相同的 Python, 并且它适用于标准 import
命令!
有没有人遇到过这种情况,and/or 可能有一些指导?非常感谢您提供的任何帮助或建议。
imp.load_compiled()
用于 .pyc
个文件。您正在寻找 imp.load_dynamic()
。或者,您可以在 sys.path
中添加您想要的目录,之后常规导入将起作用。