私は、以降にインストールされるパッケージに変換することにしたPythonアプリケーションを開発していeasy_installますpip。検索を使用して、Python パッケージのディレクトリ構造に関するいくつかの優れた情報源を見つけました。この回答またはこの投稿を参照してください。
次の構造を作成しました(構造をより明確にするために、リスト内のいくつかのファイルを省略しました)
計画/ |-- ビン/ |-- my_package/ | | |-- テスト/ | | | | |-- __init__.py | | | | |-- test_server.py | | |-- __init__.py | | |-- サーバー.py | | |-- ユーティリティ.py |-- doc/ | | |-- index.rst |-- README.txt |-- LICENSE.txt |-- setup.py
その後、実行スクリプトを作成しましたserver-run
#!/usr/bin/env パイソン my_package インポート サーバーから サーバー.main()
binディレクトリに配置しました。パッケージをインストールした場合、python setup.py installまたはpip/easy_installすべてが正常に機能する場合、実行できserver-run、サーバーが着信要求の処理を開始します。
server-runしかし、私の質問は、開発環境で動作することをテストする方法です(事前にインストールせずにmy_package)?また、このスクリプトを使用して、開発目的で最新のサーバー コードを実行したいと考えています。
開発はProjectディレクトリで行われるため、ImportError実行すると取得されます./bin/server-run
user@host:~/dev/Project/$ ./bin/server-run
トレースバック (最新の呼び出しが最後):
ファイル「./bin/server-run」の 2 行目
my_package をインポート
ImportError: my_package という名前のモジュールがありません
スクリプトを変更bin/server-runして、ファイルシステムのどこかにある別のフォルダーから (必ずしもディレクトリからではなくProject) 実行した場合に機能するようにすることはできますか? また、実稼働環境でサーバーを実行するために同じスクリプトを使用したい (可能であれば) ことにも注意してください。