2016-03-28 16 views
2

Tek bir işlevden oluşan bir modül yazdım. Ben tqdm işleyişi gibi o şey kullanabilmek için istiyorum:Bir işlevi bir Python modülünde nasıl gösteririm?

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

Ancak bu şekilde şeyler nasıl kurulacağı bilemiyorum. İşte ne var:

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

Bunu daha önce sayısız kez istendi eminim, ama nasıl paketleme işlerinin emin değilim ve bu belirli bilmecenin cevabını bulamıyorum.

İşte havuz: https://github.com/ResidentMario/missingno.

cevap

1

pandas-profiling'a baktıktan sonra bunu anladım. __init__.py() aşağıdaki satırı ekleyin:

from .missingno import missingno

+0

Gerçekten süper temiz olmak istiyorsanız, '__init __. Py' dosyanıza' __all__ = ['missingno'] 'yazın. – gaborous

0

ne buradan soru tamamen emin değilim, ama ne istediğini düşünüyorum:

from missingno.missingno import missingno 

Paketin/dosyayı/fonksiyonu farklı şeyler haha ​​adlandırma düşünebilirsiniz.

+0

Ben sadece 'olsa missingno ithalat missingno' gelen [tqdm] (https://github.com/noamraph/tqdm) yaptığı gibi olmak istiyorum. Sorun, modüllerinin, modül düzeyinde bir klasör yerine deponun (?) Üst kısmına yerleştirilmesiyle depolarının bu gibi görünmesidir, ancak hem pip hem de PyPi böyle bir dosya yapısını reddeder. –

+0

Ayrı bir konuma yükleme gerçekleştiren ve bu konumdaki PYTHONPATH noktanıza sahip bir betik yazabilirsiniz (yani "bir şey" adı verilen bir dizin oluşturduğunuzda ve bu dizine eksikno.py koyduğunuzda. PYTHONPATH öğesini "bir şey" olarak işaretleyin. "). – mwm314

+0

@ResMar no, 'tqdm' modülü repo'nun üst kısmında değil, tqdm klasörünün içine yerleştirmez. Bu nedenle, modül klasörü üst klasörle aynı ada sahip olduğundan, yanıltıcı olabilir, ancak bu gerçekten standart bir Python modül hiyerarşisidir. – gaborous

İlgili konular