J'ai créé ma propre bibliothèque Python

Aperçu

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.

environnement

Peut-être que cela n'a pas d'importance, mais juste au cas où.

Ma structure de répertoires

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

Ce que je n'ai pas mis en œuvre

Fonction d'exécution de la ligne de commande

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.

Version des exigences

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

Ce que j'ai ajouté

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

Supplément (ou plutôt ce sur quoi je suis tombé par hasard)

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.

À propos de la structure des dossiers

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

Comment importez-vous ...?

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.)

Ce qu'il y a dedans \ _ \ _!

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.

Séparer la chaîne de caractères avec Python (séparateur, saut de ligne, expression régulière, nombre de caractères)

__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.

Autre

Qu'est-ce que \ _ \ _ pycache \ _ \ _?

À la fin

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

J'ai créé ma propre bibliothèque Python
J'ai fait ma propre langue. (1)
J'ai fait ma propre langue (2)
J'ai fait ma propre AML
[Python] J'ai créé ma propre bibliothèque qui peut être importée dynamiquement
J'ai essayé de publier ma propre bibliothèque de baseball Python sur Packaging & PyPI
Python> J'ai créé un code de test pour mon propre fichier externe
J'ai créé mon propre générateur de site statique primitif
J'ai fait un blackjack avec du python!
J'ai fait un texte Python
J'ai fait un blackjack avec Python.
J'ai créé wordcloud avec Python.
J'ai créé mon propre robot de liaison parallèle (édition logicielle)
J'ai créé une bibliothèque python qui fait rouler le rang
J'ai fait mon propre robot à liaison parallèle (édition mécanique)
J'ai fait un Line-bot avec Python!
J'ai fait une loterie avec Python.
J'ai créé un démon avec Python
J'ai créé une bibliothèque qui lit facilement les fichiers de configuration avec Python
J'ai créé mon propre plug-in de filtre pour l'analyse de texte d'Ansible
J'ai créé une bibliothèque de wrapper Python pour l'API de reconnaissance d'images docomo.
J'ai fait Othello pour enseigner Python3 aux enfants (4)
J'ai fait un programme de gestion de la paie en Python!
J'ai fait un compteur de caractères avec Python
J'ai fait Othello pour enseigner Python3 aux enfants (2)
[Python] Enregistrez votre propre bibliothèque dans PyPI
Je crée mon propre cli aws
Jusqu'à ce que vous installiez votre propre bibliothèque Python
J'ai fait Othello pour enseigner Python3 aux enfants (5)
J'ai fait une carte hexadécimale avec Python
Publiez votre propre bibliothèque Python sur Homebrew
Après avoir étudié Python3, j'ai créé un Slackbot
J'ai fait un jeu rogue-like avec Python
J'ai fait Othello pour enseigner Python3 aux enfants (3)
J'ai fait Othello pour enseigner Python3 aux enfants (1)
J'ai fait un simple blackjack avec Python
J'ai créé un fichier de configuration avec Python
J'ai fait une bibliothèque pour l'assurance actuarielle
J'ai fait un simulateur de neurones avec Python
Bibliothèque de messagerie Python 3.6
Mon Numpy (Python)
Mon système (Python)
Mon pyproj (Python)
J'ai créé mon propre outil de recherche à l'aide de l'API Law [Smart Roppo]
Mon str (Python)
J'ai commencé Python
Mon PySide (Python)
Note sur la bibliothèque Python
Mon shutil (Python)
Mon matplotlib (Python)
Je n'ai ni les compétences ni la force, mais j'ai créé mon propre compilateur
Mon urllib (Python)
Mon pyperclip (Python)
Mon sklearn (Python)
[Mon mémo] python
Mon ConfigParser (Python)
Mon Webdriver (Python)