J'ai donc créé ma propre bibliothèque Python, alors j'ai écrit sur la façon de le faire. Cependant, comme les pionniers écrivent d'excellents articles, j'écrirai essentiellement les parties sur lesquelles je suis tombé par hasard et les parties originales. Si vous regardez cet article
Je pense que oui, jetez un œil.
Peut-être que cela n'a pas d'importance, mais juste au cas où.
Tout d'abord, j'aimerais que vous jetiez un œil à ma structure de répertoires. Si vous lisez cet article, vous comprendrez la signification de cette structure. ..
.
├── .gitignore
├── MANIFEST.in
├── README.md
├── package
│ ├── __init__.py
│ └── func.py
├── notebook
│ └── test.ipynb
├── requirements.txt
└── setup.py
Je l'ai dit, mais en réalité, la plupart du contenu est comme vous pouvez le voir dans cet article.
Créez une structure de répertoires Python que vous ne regretterez pas plus tard
Donc, je voudrais ajouter des choses que je n'ai pas implémentées, ajoutées, suppléments, etc. dans cet article. En outre, j'essaye de le télécharger sur Github avec cette structure de répertoires, alors veuillez voir ici si vous le souhaitez.
https://github.com/kotabrog/image_100
Celui que je voulais créer n'avait pas besoin d'être exécuté sur la ligne de commande, alors je l'ai réduit. Les grattés sont les suivants.
setup.py
entry_points = ...
pytest
Je pensais que c'était bien, mais je me demandais si c'était nécessaire maintenant. Les grattés sont les suivants.
Je pense que cela dépend du cas, mais cela fonctionne-t-il quelle que soit la version? À ce moment-là, je pensais que je n'avais pas à écrire les informations de version, alors je les ai coupées. Je ne connais pas les détails, mais je me suis demandé si je pouvais empêcher sa modification vers une nouvelle version à cause de ma propre bibliothèque, par exemple, lorsque je devais l'implémenter dans une version légèrement plus ancienne. Donc, mon requirements.txt ressemble à ceci, par exemple.
matplotlib
numpy
scikit-image
Notebook
Ce n'est pas pour la bibliothèque, mais pour publier quelque chose comme ça, ou publier le processus de test. Ce n'est pas nécessaire pour la bibliothèque et la taille du fichier sera grande, donc je pense qu'il serait plus gentil d'écrire quelque chose dans le readme que vous puissiez le supprimer.
Aussi, pour cette raison, j'ai ajouté ce qui suit à .gitignore.
.ipynb_checkpoints/
As tu besoin de ça? J'ai aussi pensé, mais il semble qu'il vaut mieux ne pas le donner à git car cela peut interférer avec quelque chose.
Supprimer les fichiers liés aux points de contrôle jupyter de la gestion git
Bien sûr, l'article auquel j'ai fait référence était très facile à comprendre, mais j'écrirai sur ce que j'ai recherché en raison de mon manque de connaissances. Si une personne trébuche, 100 personnes auront une pierre d'achoppement (non), donc ce sera sûrement utile à quelqu'un.
Comment créer une structure de dossiers générale autre que votre propre bibliothèque? Parce que c'était la situation, je l'ai utilisée comme référence de diverses manières.
Structure du projet Structure du projet Structure des dossiers lors de l'analyse des données
Je me demandais comment lire la fonction que j'avais créée à partir d'un autre fichier, je vais donc la résumer.
Modulisez et empaquetez vos propres fonctions avec python Spécifiez le répertoire / sous-répertoire supérieur par importation relative de Python Comment utiliser Python, importer (depuis, comme, style recommandé de PEP8, notes, etc.)
Je ne le savais qu'en quelque sorte, alors j'ai fait beaucoup de recherches.
--Pour l'instant, vous pouvez voir ceci-> Qu'est-ce que Python \ _ \ _ init \ _ \ _. Py
De plus, si \ _ \ _ all \ _ \ _ est défini,
from package import *
Cependant, lorsqu'il est difficile d'écrire \ _ \ _ all \ _ \ _ par moi-même, il y avait un code à écrire dans \ _ \ _ init \ _ \ _.
-About \ _ \ _ all \ _ \ _-> Explication des variables spéciales Python \ _ \ _ all \ _ \ _ par les ingénieurs actifs [pour les débutants] --Comment insérer-> [Placez tous les fichiers python dans la même hiérarchie que \ _ \ _ init \ _ \ _. Py into \ _ \ _ all \ _ \ _](https://medium.com/@hokan_dev/init- py% E3% 81% A8% E5% 90% 8C% E3% 81% 98% E9% 9A% 8E% E5% B1% A4% E3% 81% AB% E3% 81% 82% E3% 82% 8B python% E3% 83% 95% E3% 82% A1% E3% 82% A4% E3% 83% AB% E3% 82% 92% E5% 85% A8% E9% 83% A8-tout-% E3% 81% AB % E7% AA% 81% E3% 81% A3% E8% BE% BC% E3% 82% 80-ac632f71594)
Cependant, cette méthode peut ne pas fonctionner selon l'environnement. La raison en est que la manière de connecter les répertoires est différente entre Windows et Mac ... (Pourquoi ne pourraient-ils pas être unifiés ...) Donc, je vais mettre le réécrit en faisant référence à ce qui suit.
__init__.py
import glob
import os
py_list = glob.glob('package/*.py')
__all__ = list(map(lambda file_path: os.path.basename(file_path).split('.', 1)[0], py_list))
__all__.remove('__init__')
En passant, si vous faites cela, vous pourrez tout appeler, donc lorsque vous voulez choisir ce que vous pouvez appeler, vous devez l'écrire manuellement ou rassembler les choses que vous ne voulez pas appeler dans un fichier et le supprimer de tout ... C'est possible.
Qu'est-ce que \ _ \ _ pycache \ _ \ _?
Donc, je n'avais pas la capacité d'écrire de meilleurs articles que les pionniers, alors j'en ai fait un résumé. S'il y a quelque chose comme "C'est différent!", Je vous serais reconnaissant de bien vouloir me le faire savoir.
Recommended Posts