私のpythonプロジェクト間でユーティリティモジュールを共有するための最良のディレクトリ構造戦略は何ですか? 共通モジュールは新しい機能で更新されるため、それらを python インストール ディレクトリに配置したくありません。
project1/
project2/
sharedUtils/
project1 から "import ..\sharedUtils" が使えません。他に方法はありますか? 「sharedUtils」の場所をハードコードしたくない
前もって感謝します
私のpythonプロジェクト間でユーティリティモジュールを共有するための最良のディレクトリ構造戦略は何ですか? 共通モジュールは新しい機能で更新されるため、それらを python インストール ディレクトリに配置したくありません。
project1/
project2/
sharedUtils/
project1 から "import ..\sharedUtils" が使えません。他に方法はありますか? 「sharedUtils」の場所をハードコードしたくない
前もって感謝します
ディレクトリ構造:
project1/foo.py
sharedUtils/bar.py
表示したディレクトリを使用してfoo.py
、ディレクトリ内から次のようproject1
に相対パスを追加できます。sharedUtils
import sys
sys.path.append("../sharedUtils")
import bar
これにより、パスのハードコーディングが回避C:/../sharedUtils
され、ディレクトリ構造を変更しない限り機能します。
別のスタンドアロン パッケージを作成しますか? Python インストールの /site-packages に入れますか?
開発モードに関しては、私の個人的なお気に入りもあります。それは、シンボリックリンクや*.pth
ファイルの使用です。
と があるとsharedUtils/utils_foo
しますsharedUtils/utils_bar
。PYTHONPATH を編集して を含めsharedUtils
、それらをインポートしてproject1
使用project2
することができます
import utils_foo
import utils_bar
etc.
Linux では、 ~/.profile を次のように編集することで実行できます。
PYTHONPATH=/path/to/sharedUtils:/other/paths
export PYTHONPATH
PYTHONPATH 環境変数を使用すると、Python がモジュールを探すときに検索するディレクトリに影響します。すべてのユーザーが独自の PYTHONPATH を設定できるため、このソリューションは個人的なプロジェクトに適しています。
マシン上のすべてのユーザーがモジュールを にインポートできるようにするsharedUtils
場合は、ファイルを使用してこれを実現でき.pth
ます。ファイルを配置する正確な場所は.pth
、Python ディストリビューションによって異なる場合があります。Python 開発に .pth ファイルを使用する を参照してください。