Quand j'essayais de créer un paquet en écrivant
setup.py``` etc. en Cython
Fondamentalement, je pense que la structure des dossiers est chaotique.
La raison en est que lors de l'encapsulation de C ++ avec Cython, la partie qui encapsule l'implémentation du côté C ++ doit également copier le code de l'en-tête du côté C ++ vers le côté Cython.
Cela augmentera le nombre de fichiers et vous devrez séparer les dossiers. À ce stade, si vous ne comprenez pas la signification de `` __init __. Py '' ou pourquoi vous le mettez (pour moi), vous serez bloqué.
Comme il y a beaucoup de code source, il est bon de le diviser en différents dossiers,
pyx
À partir du fichierpxd
fichiercimport
et quand,
Et lorsque les fichiers pxd '' sont
cimport '' dans les dossiers
Vous pouvez obtenir une erreur du type "Fichier introuvable".
Pour éviter de perdre du temps avec de telles erreurs Je pense qu'il vaudrait mieux faire cela.
Par exemple, créez une structure de dossiers comme celle-ci.
setup.py
cpp_code/*
cython_code/
| -- __init__.py
folder_a
| -- __init__.py
| -- test_a.pyx
| -- test_a.pxd
folder_b
| -- __init__.py
| -- test_b.pyx
| -- test_b.pxd
Dans ce cas, mettez __init__. Py '' dans chaque dossier et Par exemple, si
test_b.pxd``` veut importer``
test_a.pxd```,
test_b.pxd
from cython_code.folder_a.test_a cimport *
Si vous l'écrivez d'une manière unifiée comme celle-ci, vous n'aurez probablement pas à vous soucier trop des erreurs d'importation.
Je l'ai résumé dans un mémorandum.
fin.
Recommended Posts