私はpythonパッケージ管理が初めてで、確かに何か間違ったことをしました。次のようなディレクトリ構造を作成するように勧められました。
bagoftricks
├── bagoftricks
│ ├── bagoftricks
│ │ ├── __init__.py
│ │ └── bagoftricks.py
│ └── __init__.py
├── README.md
└── setup.py
bagoftricks.py には 2 つの関数が含まれていlevenshtein()
ますgeofind()
。
これらを次のように呼びたい:
import bagoftricks
x = bagoftricks.levenshtein(arg1,arg2)
代わりに、私はこれをしなければならないことがわかりました:
import bagoftricks
x = bagoftricks.bagoftricks.levenshtein(arg1,arg2)
冗長な名前付けをせずに、最初からパッケージを整理するより良い方法はありますか?
アップデート
そこで、以下の Avichal Badaya の指示に従い、1 レベルのネスティングを削除しました。つまり、私は今...
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()
ネストの余分なレイヤーを削除することはできません。類推して、モジュールがフラットになるように、もう 1 レベルのネストを削除しようとすると、次のようになります。
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
冗長なトップレベル名のインポートなしで、標準パッケージが使用するような自然なインポートの秘訣は何ですか?