Es ist ein Ablauf, ein eigenes Paket mit setup.py
mit Python zu erstellen.
Ich hatte Schwierigkeiten mit dem Fehler "Modul nicht gefunden", daher möchte ich hier eine Notiz hinterlassen, damit ich sie nicht vergesse.
Dieses Mal werde ich es nicht an PyPi usw. weitergeben, sondern einfach die Prozedur für die "Pip-Installation" in der lokalen Umgebung organisieren.
pip install
foo.py
und führen Sie ihn ausMit folgender Struktur
--Installieren Sie die in sample.py
enthaltenen Funktionen mit pip install
foo.py
ausführen.Documents
└ tasks_project
├ src
│ └ tasks
│ ├ __init__.py
│ └ sample.py # sample.Ich möchte eine Funktion in py packen
├ hoge
│ └ foo.py # foo.Probe mit py.Führen Sie die py-Funktion aus
└ setup.py
Da diese beiden Verzeichnisse Schwager sind, wird beim Importieren relativ zueinander der folgende Fehler angezeigt.
attempted relative import beyond top-level package.
Installieren Sie es also wie folgt mit pip, damit Sie es von überall importieren können.
Schreiben Sie in sample.py
die gewünschte Funktion. Ich habe einfach so etwas geschrieben.
Ich importiere verschiedene Module, weil ich überprüfen wollte, ob numpy
und pandas
richtig verwendet werden können.
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))
__init __. Py
Ich habe das hier nicht geschrieben, daher vermute ich, dass ich den Fehler "Modul nicht gefunden" erhalten habe. Es ist so, als würde man einstellen, welche Funktion zum Zeitpunkt der Pip-Installation installiert werden soll.
from .sample import (
hello,
get_array,
get_df,
get_date,
)
__version__ = '0.1.0'
setup.py
Nehmen Sie die wichtigsten Einstellungen vor, wenn Sie "pip install" in "setup.py" ausführen. Im Folgenden denke ich, dass es in Ordnung ist, wenn Sie "Name", "Version", "Pakete" und "Paket_Dir" richtig schreiben.
"""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
Wechseln Sie in das Verzeichnis eine Ebene über "task_project" (in diesem Fall "Documents") und führen Sie dann "pip install" durch.
$ cd Documents
$ pip install ./tasks_project/
Processing ./tasks_project
Building wheels for collected packages: tasks
Building wheel for tasks (setup.py) ... done
..........Abkürzung..........
Successfully installed tasks-0.1.0
Wenn Sie "Erfolgreich installiert" sehen, sind Sie erfolgreich.
foo.py
und starteimport tasks
tasks.hello()
arr = tasks.get_array()
print(arr)
df = tasks.get_df()
print(df)
tasks.get_date()
Wenn Sie dies schreiben, sollten Sie es unten ausführen und fehlerfreie Ergebnisse erhalten.
$ 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
Dies erleichtert das Schreiben von Testcode usw. ein wenig. Ich wollte es früher wissen, aber aus irgendeinem Grund konnte ich nicht viele gute Artikel finden. .. .. Ich verweise auf den Inhalt der folgenden Bücher.
Python Testing with pytest: Simple, Rapid, Effective, and Scalable (English Edition)
Recommended Posts