Flux de création de votre propre package avec setup.py avec python

introduction

C'est un flux pour créer votre propre paquet avec setup.py avec python. J'ai eu du mal avec l'erreur «module not found», alors j'aimerais laisser une note ici pour ne pas l'oublier. Cette fois, je ne le donnerai pas à PyPi etc., mais organiserai simplement la procédure pour pip install dans l'environnement local.

couler

  1. Décrivez le contenu de sample.py, __init __. Py, setup.py
  2. Installez le package localement avec pip install
  3. Écrivez le contenu de foo.py et exécutez-le

Structure du répertoire

Avec la structure suivante

--Installez les fonctions contenues dans sample.py avec pip install

Documents
└ tasks_project
  ├ src
  │   └ tasks
  │       ├ __init__.py
  │       └ sample.py     # sample.Je veux empaqueter une fonction dans py
  ├ hoge
  │   └ foo.py            # foo.échantillon avec py.Exécuter la fonction py
  └ setup.py

Étant donné que ces deux répertoires sont beaux-frères, si vous les importez l'un par rapport à l'autre, vous obtiendrez l'erreur suivante.

attempted relative import beyond top-level package.

Alors, installez-le avec pip comme suit afin de pouvoir l'importer de n'importe où.

Décrivez le contenu de sample.py, __init __. Py, setup.py

Contenu de sample.py

Dans sample.py, écrivez la fonction souhaitée. J'ai simplement écrit quelque chose comme ce qui suit. J'importe différents modules car je voulais vérifier si «numpy» et «pandas» peuvent être utilisés correctement.

import numpy as np
import pandas as pd
import datetime

def hello():
    print("hello_world")


def get_array():
    return np.array([1, 2, 3])


def get_df():
    return pd.Series([1, 2, 3])


def get_date():
    print(datetime.datetime(2019, 12, 1, 1, 1, 1))

Contenu de __init __. Py

Je n'ai pas écrit ceci ici, donc je suppose que j'obtenais une erreur module not found. C'est comme définir la fonction à installer au moment de pip install.

from .sample import (
    hello,
    get_array,
    get_df,
    get_date,
)

__version__ = '0.1.0'

Contenu de setup.py

Définissez les paramètres les plus importants lorsque vous effectuez pip install dans setup.py. Ci-dessous, je pense que ce n'est pas grave si vous écrivez correctement name, version, packages et package_dir.

"""Minimal setup file for tasks project."""

from setuptools import setup, find_packages

setup(
    name='tasks',
    version='0.1.0',
    license='proprietary',
    description='Module Experiment',

    author='greenteabiscuit',
    author_email='[email protected]',
    url='None.com',

    packages=find_packages(where='src'),
    package_dir={'': 'src'},
)

pip install

Déplacez-vous vers le répertoire un niveau au-dessus de tasks_project ( Documents dans ce cas), puis exécutez pip install.

$ cd Documents
$ pip install ./tasks_project/

Processing ./tasks_project
Building wheels for collected packages: tasks
  Building wheel for tasks (setup.py) ... done
..........Abréviation..........
Successfully installed tasks-0.1.0

Si vous voyez "Installé avec succès", vous avez réussi.

Décrivez le contenu de foo.py et exécutez

import tasks

tasks.hello()

arr = tasks.get_array()
print(arr)

df = tasks.get_df()
print(df)

tasks.get_date()

Si vous écrivez ceci, vous devriez l'exécuter ci-dessous et obtenir des résultats sans aucune erreur.

$ cd Documents/hoge/
$ python foo.py

hello_world
[1 2 3]
0    1
1    2
2    3
dtype: int64
2019-12-01 01:01:01

finalement

Cela facilitera un peu l'écriture du code de test, etc. Je voulais savoir plus tôt, mais pour une raison quelconque, je n'ai pas trouvé beaucoup de bons articles. .. .. Je me réfère au contenu des livres suivants.

Python Testing with pytest: Simple, Rapid, Effective, and Scalable (English Edition)

Recommended Posts

Flux de création de votre propre package avec setup.py avec python
Exécutez l'intelligence de votre propre bibliothèque python avec VScode.
[Python] Empaquetez et distribuez vos propres modules
Publiez votre propre bibliothèque Python sur Homebrew
Créez rapidement votre propre module avec setuptools (python)
Flux de création d'un environnement virtuel avec Anaconda
Mémo pour créer votre propre Box avec le Python de Pepper
[Introduction à l'application Udemy Python3 +] 66. Création de votre propre exception
Appelons votre propre bibliothèque C ++ avec Python (Préférences)
Définissez votre propre fonction de distance avec k-means de scikit-learn
Création de "Web Tools" BINGO avec Python (Table of Contents)
Résumé du flux de base de l'apprentissage automatique avec Python
Appelez votre propre module python à partir du package ROS
Créer un œuf avec python
Jusqu'à ce que vous puissiez installer votre propre bibliothèque Python avec pip
Essayez de trier vos propres objets avec des files d'attente prioritaires en Python
Un enregistrement de patcher un package python
[Package cloud] Gérez les packages python avec le package cloud
[Python] Créez votre propre bot LINE
[Python] journalisation dans votre propre module
Résolvez votre propre labyrinthe avec Q Learning
Premiers pas avec Python Bases de Python
Visualisez les dépendances des packages python avec graphviz
Jeu de vie avec Python! (Le jeu de la vie de Conway)
10 fonctions du "langage avec batterie" python
[Introduction au style GAN] Apprentissage unique de l'animation avec votre propre machine ♬
Introduction du package de dessin python pygal
Implémentation de la méthode Dyxtra par python
Entraînez UGATIT avec votre propre jeu de données
Coexistence de Python2 et 3 avec CircleCI (1.0)
[Python] Création de plusieurs fenêtres avec Tkinter
Résolvez votre propre labyrinthe avec DQN
Etude de base d'OpenCV avec Python
Analysez le code source de votre propre moteur de recherche simple écrit en Python avec l'outil de visualisation de code "SOURCE TRAIL"
Obtenez une liste des packages installés dans l'environnement actuel avec python
Créez votre propre caméra virtuelle avec Python + OpenCV et appliquez des effets originaux
Explication de la création d'une application pour afficher des images et dessiner avec Python
Bases du traitement d'images binarisées par Python
[Exemple d'amélioration de Python] Apprentissage de Python avec Codecademy
Créer un fichier power simple avec Python
Votre propre client Twitter réalisé avec Django
Créez vos propres commandes Linux en Python
[Renforcer l'apprentissage] DQN avec votre propre bibliothèque
Créez wordcloud à partir de votre tweet avec python3
Analyse bidimensionnelle du flux de perméation saturée-insaturée avec Python
[LLDB] Créez votre propre commande avec Python
Exécuter le script Python avec TS-220 cron
Utilisez facilement vos propres fonctions en Python
Installation de Python et gestion des packages avec pip
Créez votre propre serveur DNS avec Twisted
Remarques lors de la création d'un environnement avec python
Vérifier l'existence du fichier avec python
Créez votre propre valeur composite avec SQLAlchemy
Obstrué par la mise à jour Python de la console GCP ①
Introduction facile de la reconnaissance vocale avec Python
Programmes Python de document HTML avec Sphinx
[Python] Enregistrez votre propre bibliothèque dans PyPI
Jusqu'à ce que vous installiez votre propre bibliothèque Python