2016-03-28 4 views
2

Ich schrieb ein Modul, das aus einer einzigen Funktion besteht. Ich möchte in der Lage sein, es zu benutzen so etwas wie, wie tqdm funktioniert:Wie stelle ich eine Funktion in einem Python-Modul zur Verfügung?

>>> from tqdm import tqdm 
>>> tqdm 
<function tqdm.tqdm> 

Allerdings kann ich nicht herausfinden, wie sich die Dinge auf diese Weise einzurichten. Hier ist, was ich habe:

>>> from missingno import missingno 
>>> missingno 
<module 'missingno.missingno' from '[...]'> 
>>> missingno.missingno 
<function missingno.missingno.missingno> 

Ich bin sicher, dass dies vor unzählige Male gefragt worden, aber ich bin nicht sicher, wie Verpackungsarbeiten und kann keine Antwort auf dieses besondere Rätsel finden.

Hier ist das Repository: https://github.com/ResidentMario/missingno.

Antwort

1

Nach dem Blick auf pandas-profiling habe ich es herausgefunden. Fügen Sie die folgende Zeile in __init__.py():

from .missingno import missingno

+0

Auch wenn du wirklich super sauber sein willst, füge '__all__ = ['missingno']' in deine '__init __. Py' Datei ein. – gaborous

0

Ich bin nicht ganz sicher, was Sie hier Ihre Frage, aber ich denke, was Sie wollen, ist:

from missingno.missingno import missingno 

Sie können das Paket/file/Funktion verschiedene Dinge haha ​​berücksichtigen wollen benennen.

+0

ich es aber nur 'von Missingno Import missingno' sein wollen, wie [tqdm] (https://github.com/noamraph/tqdm) der Fall ist. Problem ist, dass ihr Repository dies zu erreichen scheint, indem das Modul an der Spitze des Repositories (?) Statt in einem Ordner auf Modulebene platziert wird, aber sowohl pip als auch PyPi lehnen eine solche Dateistruktur ab. –

+0

Sie könnten ein Skript schreiben, das eine Installation an einem separaten Ort ausführt und Ihren PYTHONPATH-Punkt an diesem Ort hat (dh wenn Sie ein Verzeichnis mit dem Namen "something" erstellen und missingno.py in dieses Verzeichnis schreiben. Dann zeigen Sie PYTHONPATH auf "irgendwas" "). – mwm314

+0

@ResMar Nein, 'tqdm' platziert das Modul nicht an der Spitze des Repos, sondern in einem' tqdm'-Ordner. Daher kann dies irreführend sein, da der Modulordner den gleichen Namen wie der oberste Ordner hat, aber dies ist wirklich eine Standard-Python-Modulhierarchie. – gaborous

Verwandte Themen