我是python包管理的全新用戶,肯定做了一些錯誤的事情。我感到鼓舞的是創建一個目錄結構如下:如何在不重複導入頂級名稱的情況下構建python包
bagoftricks
├── bagoftricks
│ ├── bagoftricks
│ │ ├── __init__.py
│ │ └── bagoftricks.py
│ └── __init__.py
├── README.md
└── setup.py
bagoftricks.py包含兩個功能,levenshtein()
和geofind()
。
我想稱這些爲:
import bagoftricks
x = bagoftricks.levenshtein(arg1,arg2)
相反,我覺得我必須這樣做:
import bagoftricks
x = bagoftricks.bagoftricks.levenshtein(arg1,arg2)
有沒有更好的方式來組織我的包裹擺在首位,沒有命名冗餘?
UPDATE
所以,我也跟着Avichal Badaya的指示之下,除去一級嵌套。也就是說,我現在有...
bagoftricks
├── bagoftricks
│ ├── __init__.py
│ └── bagoftricks.py
├── README.md
└── setup.py
然而,調用這個包,我還有...
from bagoftricks.bagoftricks import geofind()
或
import bagoftricks
然後
>>> bagoftricks.bagoftricks.geofind()
而不是所需的....
from bagoftricks import geofind()
或
import bagoftricks
>>> bagoftricks.geofind()
我不能刪除嵌套的額外層。當我嘗試,通過類比,除去嵌套一個多層次,使我的模塊是平的,如:
bagoftricks
├── __init__.py
├── bagoftricks.py
├── README.md
└── setup.py
我不能建立包在所有...
$ python setup.py build
running build
running build_py
error: package directory 'bagoftricks' does not exist
有什麼自然進口的祕密,如標準包使用,沒有多餘的頂級名稱進口?
謝謝,這是明確的和有益的,尤其是如何有效和正常生長它的尖端。這個問題當然是我的__init__.py語句。我不太明白它在層次結構中的位置,以及爲了縮短呼叫的位置。完美的作品。謝謝! – Mittenchops