好吧,我正在尝试做的是在.pyd文件中打包的文件夹中导入一个模块。这对我有用:
from apple import __init__
苹果是与Python脚本在同一目录中的.pyd,而__init__当然是在.pyd内部打包的。这可行,但这是我想做的,但不起作用:
from apple.seed.worm import WormManager
说明:apple = pyd,seed = pyd中的目录,worm = apple pyd中种子目录中的目录,蠕虫目录中的WormManager = python模块。
但是,它不起作用,导致模块找不到ImportError,认为种子是一个模块(在打包之前,种子目录中有一个__init__)。当然它存在并包含在.pyd中,但它根本不起作用。我甚至做到了这一点:
from apple.seed import __init__
但即便如此,我知道我没有输入这个权利。
我真的找不到让它在互联网上工作的正确语法,当然我知道如何在没有pyd的情况下做到这一点,所以任何帮助?
答案 0 :(得分:0)
您需要先从命令行运行C:\path\to\pip\tool\pip install pyd
。
答案 1 :(得分:0)
我不确定,但我认为Python无法在不先导入的情况下动态发现内部pyd API。
你应该先尝试导入pyd:
import apple
然后你可以(可能)访问内部API:
WM = apple.seed.worm.WormManager
此外,您的apple.pyd
dll文件必须包含official documentation的PyInit_apple()
函数。如果没有,或者它定义不明确(没有定义所有子模块),这可以解释为什么你不能做from apple ...
。