質問
私は簡単なpythonの応用が私のディレクトリに具体的な構成は、以下の通りです
- プロジェクト/
- main.py
- config.py
- plugins/
- plugin1
- plugin2
- ...
Config.py だけ荷重の設定ファイルが含まれていない設定情報そのものです。
私たは配布プログラム、およびようと思って使用setuptoolsのことを思い出します。ファイルをユーザーの使用が期待でmain.pyいようになっていを明確に入に/usr/binおよび他のファイルへ/usr/share/プロジェクト.
が問題:私は何が必要かmain.py 探しconfig.py 株主ンをクリックします。ができません必ず場所を正確に共有ディレクトリですが、それsetuptools。
どの練習を配布する場合はPythonベースのアプリケーション?
解決
setuptools インストールパッケージに到達性のあるpythonからすなわちデータのインポートができます:
import project
この問題をきな相対的に輸入ではなく絶対い。の場合 main.py
輸入 config.py
すでに同じディレクトリです。きてお main.py
他のロケーションのように /usr/bin
または別の場所に存在 パス 環境変数のpythonのみ輸入 config.py
から sys.path
なおパッケージdir.このセクションの使用は絶対インポート
from project import config
現在 main.py
は"可動".
他のソリューションも好きで、自動スクリプトの創出による setuptools.
なおコード
if __name__ == "__main__":
# here all your beautiful code
算書、コードの機能(メインが良い名):
def main():
# put your code here
if __name__ == "__main__": # not needed, just in case...
main()
現在の変更 setup.py
:
setup(
# ...
entry_points = {
"console_scripts": [
# modify script_name with the name you want use from shell
# $ script_name [params]
"script_name = project.main:main",
],
}
)
ることはありません。後のインストール setuptools をラッパースクリプトを呼び出し可能オブジェクトからシェルとそのメイン機能です。現在 main.py
でプロジェクトディレクトリに必要なもの移動で bin/
ディレクトリです。ご注意 setuptools 自動的にこのスクリプト bin/
ディレクトリの設置の接頭辞です。
たしました。
python setup.py install --prefix ~/.local
インストールプロジェクトにパッケージ
~/.local/lib/python<version>/site-packages/<package_name>
やスクリプト
~/.local/bin/<script_name>
いること ~/.local/bin
、効率が良くありません。 パス env.
詳細情報: http://peak.telecommunity.com/DevCenter/setuptools#automatic-script-creation