0

質問をより明確にするために編集

大規模なpythonアプリケーションを整理するための推奨または標準的な方法はありますか?たとえば、プロジェクトを明確に整理するには、異なるサブディレクトリに複数のファイルが必要です。

私が見つけることができたすべてのドキュメントは、パッケージについて話しています。私の目には、他の言語ではライブラリと呼ばれるものです。つまり、メイン プログラムに含まれる/必要とされるコードです。パッケージ内の setup.py は、アプリケーション全体のメイン プログラム/スクリプトであるように見えるため、この混乱を助長しますが、代わりにモジュールをライブラリとして「インストール」するために使用されます。

つまり、コードをアプリケーション (実際に実行するプログラム) にするための標準/推奨事項です。ライブラリ/パッケージではありません (アプリケーションに含まれている/使用されているもの)

4

3 に答える 3

3

大規模なアプリケーションを編成する 1 つの方法 (唯一の方法ではありません) は、 と を組み合わせて使用​​することvirtualenvですbuildout

virtualenv分離された Python 環境を作成できます。大規模な Python アプリケーションは多数のパッケージに依存するため、これは重要です (自分で作成したものもあれば、別の場所からインストールしたものもあります)。システムの python にバージョン 3.2.1 が既にインストールされている場合、アプリケーションでパッケージのバージョン 1.2.3 を要求したくないため、実行中の他のアプリケーションからアプリケーションを分離する必要があります。

buildoutアプリケーションのすべての依存関係を定義し、繰り返しゼロから​​ビルドできるため便利です。

を使用したプロジェクトのディレクトリ構造はbuildout次のようになります。

project/
   bootstrap.py
   buildout.cfg
   .installed.cfg
   parts/
   develop-eggs/
   bin/
       buildout
       mypython
   eggs/
   downloads/

このbootstrap.pyファイルはビルドアウトの標準でありbin、ローカルの python とコマンドを含むフォルダーを作成しますbuildoutbin\buildout次に、buildout.cfg(実際に作成する必要がある唯一のファイル)を使用して、アプリケーションが必要とする他のすべてをダウンロードしてインストールします。.installed.cfgは実行されたコマンドの記録を保持するため、buildout.cfgを更新して再実行するbin/buildoutと、不要になったものをアンインストールして新しいものをインストールできます。

Plone や Django などの大規模な Python プロジェクトでは、 を使用しています。これについて説明している優れたブログ投稿については、http://jacobian.org/writing/django-apps-with-buildout/buildoutを参照してください。

于 2013-07-23T15:04:49.163 に答える
1

いくつかの混乱を解消するために、メインのエントリ ポイントではなく、setup.pyインストールスクリプトについて説明します。Python アプリケーションには、いくつかのコマンドライン スクリプト、実行可能な「メイン」エントリ ポイントpython -m name.of.package、GUI など、「メイン エントリ ポイント」と対話する方法がいくつか含まれている場合があります。

通常、アプリケーションのトップ レベルに含まれる追加データを含める必要がある場合は、次のようにします。

your_project_root/
    data/
        additional/
        directories/
        and.files
    project_name/
        __init__.py
        package.py
        and.py
        module.py
        files.py
        go/
            __init__.py
            here.py
    setup.py
    README.rst
    # Other top-level stuff as needed
于 2013-07-23T14:31:45.220 に答える