2011-01-05 16 views
1

私はこのようなディレクトリ構造を持つpythonアプリケーションを持っています。私はsubmodule3下(mainpython.pyから)のpythonユーティリティをインポートしようとすると、python __import __()は同じモジュールが2つの場所にある場合、2つの異なるディレクトリからインポートします

-pythonapp 
    -mainpython.py 
    -module1 
     -submodule1 
      -file1.py 
      -file2.py 

     -submodule2 
      -file3.py 
      -file3.py 

     -submodule3 
      -file1.py 
      -file2.py 
      -file5.py 
      -file6.py 
      -file7.py 

、私はsubmodule1から最初の2つのファイルを取得します。(そのsubmodule1に注意し、3は、同じ名前を持つ2つの異なるファイルを持っていてください)。しかし、矛盾がない、つまりサブモジュール3からファイル5,6,7を正しくインポートすると、同じインポートが正常に機能します。ここで

はコードです:ここでは

name=os.path.splitext(os.path.split("module1\submodule3\file1.py")[1])[0] --> file1.py name here is passed dynamically. 

module = __import__(name) 

//は名前である「FILE1」(動的ファイルの名前を通過するときに、しかし、しかし、上記の言った問題で)それが動作するように、しかし、もしされます私は "module1.submodule1.file1"として完全なパッケージを渡します。 "File1という名前のモジュールはありません"というImportErrorで失敗します。

ここで問題は、 "module1.submodule3 .file2 "?私はPythonを使用しています

これは本当に緊急のもので、私はすべての試行を使い果たしました。経験豊富なPython開発者が私のためにこれを解決できることを願っていますか?

+0

質問を再フォーマットできますか? –

+2

なぜあなたは '__import__'を使用していますか?どうして 'from module1.submodule3 import filex'だけではないのですか? – aaronasterling

答えて

3

は、それぞれに持つ空の__init__.pyファイルを持っていることによって、あなたのディレクトリからパッケージを作成してみて、あなたがパッケージから特定のモジュールを参照したい時はいつでも

from submodule import mymodule 

構文を使用します。パッケージを作成すると、モジュールを異なる名前空間に分けることができます。モジュールの機能に応じて名前を付け、ファイル1、ファイル2などとしないでください。

関連する問題