Bien, entonces, lo que estoy tratando de hacer es importar un módulo en carpetas empaquetadas dentro de un archivo .pyd. Aquí hay algo que me funcionaría:
from apple import __init__
Como Apple es el .pyd en el mismo directorio que el script de Python, y __init__, por supuesto, se empaqueta dentro del .pyd. Esto funcionaría, sin embargo, esto es lo que quiero hacer, pero no funciona:
from apple.seed.worm import WormManager
Explicación: apple = pyd, seed = directory en el directorio pyd, worm = en el directorio de semillas en apple pyd, WormManager = python module en el directorio de worm.
Sin embargo, no funciona, y da como resultado que no se encuentre un módulo ImportError pensando que la inicialización es un módulo (y había un __init__ dentro del directorio de inicialización antes de que se empaquetara). Por supuesto, existe y está empaquetado en el .pyd, pero simplemente no funciona. Incluso hice esto:
from apple.seed import __init__
pero ni siquiera eso funciona, así que sé que no estoy importando este derecho.
Realmente no pude encontrar la syntax correcta para hacer que esto funcione en Internet, y por supuesto, sé cómo hacerlo sin un PyD involucrado, ¿hay alguna ayuda?
Primero debe ejecutar C:\path\to\pip\tool\pip install pyd
desde la línea de comando.
No estoy seguro, pero creo que Python no puede descubrir dinámicamente la API interna de pyd sin importarla primero.
Debes intentar importar el pyd primero:
import apple
Entonces puedes (probablemente) acceder a la API interna:
WM = apple.seed.worm.WormManager
Además, su archivo dll apple.pyd
debe contener una función PyInit_apple()
según la documentación oficial . Si no lo hace, o si está mal definido (no define todos los submódulos), esto puede explicar por qué no puede hacerlo from apple ...