5

Pythonプロジェクトの構造は、Web上に多くの提案があります。たとえば、Pythonアプリケーションに最適なプロジェクト構造は何ですか。

"proj-dir"
+- doc
+- apidoc
+- scripts
+- "src-dir"
+- tests

Pythonの世界では、「src-dir」と「proj-dir」が等しい(または非常に似ている)ことを好む人が多いようです。ただし、スクリプトとテストは確かにsrc-dirからいくつかのモジュールをインポートする必要があるため、どちらかをインポートする必要があります。

  • proj-dirが現在の作業ディレクトリである場合、すべてのスクリプトとテストを実行します。
  • PYTHONPATHにはproj-dirが含まれている必要がありますよね?

または、私が今見落としている他の可能性はありますか?

私がそのような構造を持っていて、PYTHONPATHを正しく設定したとしましょう。次に、プロジェクトをVCSにコミットし、別の開発者がプロ​​ジェクトをチェックアウトします。彼のマシンでは、PYTHONPATHが正しく設定されず、スクリプトおよびテストでのインポートが機能しません。

  1. PYTHONPATH定義をプロジェクトの一部にして、バージョン管理の一部にする可能性はありますか?
  2. PYTHONPATHを変更せずにチェックアウトしてプロジェクトの使用を開始できる別のプロジェクト構造はありますか?
  3. ここで解決策を提案しますか:Python-複雑なディレクトリ構造でPYTHONPATHを実行する方法は?(つまり、すべてのスクリプトとテストに短いsys.path変更スニペットを含める)正しいものですか?
  4. サイトモジュールhttp://docs.python.org/2/library/site.htmlは役に立ちますか?
  5. 同様の構造のプロジェクトを開発するときのワークフローは何ですか?
4

1 に答える 1

1

プロジェクト構造が複雑で、テストケースが異なるパッケージのsrcを使用している場合でも、Windowsの環境変数にPYTHONPATHを追加できます。

[マイコンピュータ]->[プロパティ]->[システムプロパティ]->[詳細設定]タブ->[環境変数]。新しいシステム変数PYTHONPATHを追加し、プロジェクトディレクトリを区切り文字';'を使用してその変数に追加します。

スクリプトを実行するためにPYTHONPATHを追加する方法を明確に示しているreadme.txtをプロジェクトに保持することをお勧めします。これは、android-sdkのPATHを追加してadbシェルを機能させ、Javaパスを追加してJavaをコマンドプロンプトで機能させるのと同じです。

したがって、readme.txtは、1回の変更で別のマシンにダウンロードしたときにスクリプトを実行するのに役立ちます(値= projectpathでPYTHONPATH変数を追加します)

srcを使用しているテストケースを機能させるためにsrcのすべてのモジュールを追加する必要はありません

次に、proj構造の例を示します。

SAMPLEPROJECT
    src
      com
        sample
          example
            utils
              a.py
              b.py

    testcases
      test1.py
      test2.py

    res
    docs

test1.pyテストケースがa.pyとb.pyを使用している場合:Pythonパスにプロジェクトパスをすでに追加しているため、utilsモジュールをPYTHONPATHに追加しないでください。インポートステートメントはtest1.pyで次のようになります。

from src.com.sample.example.utils import a.py
from src.com.sample.example.utils import b.py 
于 2013-07-08T19:22:44.963 に答える