だから私はデスクトップアプリケーションに小さなスクリプトとウェブ開発から移動することによって、私の知識とPythonのスキルを拡大しようとしている、といくつかのトラブルsetup.py
と、彼らは輸入に与える影響とエントリポイントを理解することを持っています。 Pythonでどのようにインポートが機能するかについて深く理解していませんが、これは役に立ちません。絶対輸入とエントリポイント
私の混乱は、大きなデスクトップアプリケーション、特にDeluge、Pythonで書かれたBitTorrentにアプリのサンプルコードを見てから来ています。 setup.py
で定義されているように、興味深いことに
# deluge/core/core.py
import deluge.common
from deluge.core.eventmanager import EventManager
しかし、すべてのそれのエントリポイントプログラムの中にも深いです:それはのコードを見てみると
は、それ自身のモジュールのすべての輸入は、たとえば、絶対的であることを思わ
# setup.py
entry_points = {
'console_scripts': [
'deluge-console = deluge.ui.console:start',
'deluge-web = deluge.ui.web:start',
'deluged = deluge.core.daemon_entry:start_daemon'
],
'gui_scripts': [
'deluge = deluge.ui.ui_entry:start_ui',
'deluge-gtk = deluge.ui.gtkui:start'
],
'deluge.ui': [
'console = deluge.ui.console:Console',
'web = deluge.ui.web:Web',
'gtk = deluge.ui.gtkui:Gtk',
],
}
this SO questionの回答によれば、これは通常不可能です。絶対インポートを使用するには、プロジェクトルート内のファイルからプログラムを起動する必要があります。
sys.path
のように、コードの検索では1つのインスタンスしか見つかりませんが、実際のソフトウェアではなくドキュメンテーションに関連しているように見えます。コード。
それでは、どの一つは、モジュール内のより深い彼らのPythonプログラムのエントリポイントを持っていますが、プロジェクトのルートからの絶対importを使うのでしょうか?大洪水はそれをしたようだが、私はどのようにして、私は私のプロジェクトでそれをしたいと思います。
そして、あなたは私が例のために見ることができるというPythonで書かれた任意の他の大規模なデスクトップアプリケーションを知っているならば、あなたはそれについて私に言った場合はサイドの問題として、私はそれを愛するだろう:)
乾杯