1

プロジェクトのセットアップは次のようになります。

ベース プロジェクト

/some_disk/some_folder/
|-- project/
|   |-- package/
|   |   |-- src/
|   |   |   |-- file_a.py
|   |   |   |-- file_b.py

拡張プロジェクト

/some_other_disk/some_folder/
|-- project/
|   |-- package/
|   |   |-- src/
|   |   |   |-- file_c.py
|   |   |   |-- file_d.py

次に、mopdules file_a と file_c の両方を使用できるようにしたい 3 番目のプロジェクトがあります。

その 3 番目のプロジェクトでは、Python パスを次のようにセットアップしました。

PYTHONPATH=$PYTHONPATH:/some_disk/some_folder:/some_other_disk/some_folder

次に、ファイルをインポートするために、メイン モジュールにこれを入れます。

import project.module.src.file_a
import project.module.src.file_c

ただし、これにより、モジュールの1つをインポートでき、もう1つのモジュールでモジュールが見つからないというエラーが発生します。

このプロジェクト構造を使用してこれを機能させることはできますか? それとも、Python は常に「メイン」モジュールの 1 つだけを調べて、そこにない場合はサブモジュールが見つからないと見なしますか?

EDIT:プロジェクトはPython 2.6を利用しています

4

3 に答える 3

0

これにより、最初に現在のディレクトリ/標準ディレクトリでpython検索が行われ、2番目のディレクトリでは、pythonは最初に標準ディレクトリの前にpathtofile_cで検索されます。

import project.module.src.file_a  #<--- here it searches some_disk first
sys.path.insert(0,'pathtofile_c') #<--- Changes your PYTHONPATH - inserts some_other_disk before standard directories
import project.module.src.file_c  #<--- here it searches some_other_disk first

これにより、python の混乱が解消されます。

于 2013-08-01T13:56:14.187 に答える