これはimport python modules with the same nameへのフォローアップの質問ですが、2はやや無関係ですと、それは新しい質問をするために、おそらく良いでしょう:のmod_wsgi:同じ名前の輸入pythonモジュール
私はいくつかのpythonのプロジェクトを持っているし、彼らCにアクセスして、今すぐ
.../site-packages/project_1.pth:
import sys; sys.path.append('/some_folder/project_1/')
.../site-packages/project_2.pth:
import sys; sys.path.append('/another_folder/project_2/')
:
各プロジェクトのために/some_folder/project_1/
conf/
__init__.py
some_source_file.py
/another_folder/project_2/
conf/
__init__.py
another_source_file.py
、私はこの内容でのsite-packagesフォルダ内の.pthファイルを作成している:すべてのconfにパッケージを持っていますONFモジュールは、のために/ some_folder /てproject_1 /作品:
import conf.some_source_file
ではなく、ために/ another_folder/project_2 /:SYSのみで任意のフォルダの下に最初のconfパスを検索する原因のpythonにおそらくある
import conf.another_source_file
AttributeError: 'module' object has no attribute 'another_source_file'
。パス。今私ができる、通常のPythonスクリプトでは
/some_folder/project_1/
__init__.py
project_1 <-- symlink to .
conf/
__init__.py
some_source_file.py
/another_folder/project_2/
__init__.py
project_2 <-- symlink to .
conf/
__init__.py
another_source_file.py
:
私はそのためのpythonパッケージにてproject_1とproject_2を向け、のいずれかでシンボリックリンクを追加しましたので、私は完全修飾された形で、両方のconfパッケージにアクセスすることができています両方のconfパッケージからインポートモジュール:
import project_1.conf.some_source_file
import project_2.conf.another_source_file
しかし、私はmod_wsgiのApacheのモジュールを使用してWSGIアプリケーション内で同じことをしようとすると、インポートが第二のプロジェクトのために失敗しました。具体的には、wsgiの「開始ファイル」(つまり、仮想サーバーのApache設定ファイルのWSGIScriptAliasステートメントで参照されるwsgiサフィックスを持つファイル)は、/ another_folder/project_2 /内のモジュールを正常にインポートし、次にproject_2/conf/another_source_file .py。
/another_folder/project_2 /がsys.pathにあるにもかかわらず、2回目のインポートが失敗します。 WSGIアプリケーションはデーモンモードで実行されています。
どうすればこの並べ替えができますか?