che*_*gcj 6 python windows pyd pycharm
我正在使用 PyCharm。我在以下位置有一个 python 脚本:
C:\Users\XYZ\PycharmProjects\Project1\playground.py
Run Code Online (Sandbox Code Playgroud)
playground.py 只有一行代码,如下所示:
import PyTbl
Run Code Online (Sandbox Code Playgroud)
在Project1文件夹中有另一个文件:
C:\Users\XYZ\PycharmProjects\Project1\PyTbl.pyd
Run Code Online (Sandbox Code Playgroud)
当我运行 Python 脚本时playground.py,出现以下错误:
ImportError: numpy.core.multiarray failed to import
Traceback (most recent call last):
File "C:/Users/XYZ/PycharmProjects/Project1/playground.py", line 1, in <module>
import PyTbl
SystemError: initialization of PyTbl raised unreported exception
Run Code Online (Sandbox Code Playgroud)
如果我将鼠标悬停playground.py在 PyCharm 编辑器中的 Python 代码行上,我会收到以下错误消息:
"No module named PyTbl"
Run Code Online (Sandbox Code Playgroud)
知道我应该如何将.pyd文件导入 Python 脚本吗?
.pyd基本上是一个Windows.dll文件。
.pyd文件是dll’s,但有一些区别。如果你有一个名为 foo.pyd 的 DLL,那么它必须有一个函数PyInit_foo()。然后您可以编写 Pythonimport foo,Python 将搜索foo.pyd(以及foo.py,foo.pyc),如果找到,将尝试调用PyInit_foo()以初始化它。您不要将 .exe 与 链接foo.lib,因为这会导致 Windows 要求存在 DLL。请注意, 的搜索路径
foo.pyd是 PYTHONPATH,与 Windows 用于搜索的路径不同foo.dll。此外,foo.pyd运行您的程序时不需要出现,而如果您将程序与 链接dll,则dll是必需的。当然,foo.pyd如果你想说,是必需的import foo。在 DLL 中,链接在源代码中使用__declspec(dllexport). 在 a 中.pyd,链接在可用函数列表中定义。
| 归档时间: |
|
| 查看次数: |
25238 次 |
| 最近记录: |