2016-04-17 5 views
0

私は、この「folder2.python_file2輸入some_function」のようにインポートしようとしながら、私は以下のようなディレクトリ構造..pythonで別のディレクトリファイルから関数をインポートする方法。そのディレクトリに__init__.pyファイルがありますか?

|---- folder1 
     |---- __init__.py 
     |---- python_file1.py 
    |---- folder2 
     |---- __init__.py 
     |---- python_file2.py 

を持っています。

それがエラーを与える:はImportError:名前some_functionに

をインポートすることはできませんし、また、私は、彼らが__init__.pyファイルなしディレクトリ場合は、ファイルパスを挿入すると、スタックオーバーフローに多くの答えを見ていたし。しかし、私は__init__.pyを持っていても、そのディレクトリから関数をインポートすることはできません。このエラーについてはっきりさせてください。

ありがとうございました。

+0

インポート元のファイルはどこですか? – Oisin

+0

私はfolder2のpython_file2からpython_file1にpython関数をインポートするだけです。これはDjango Projectにあります。 –

答えて

1

Pythonでは、ピリオド(。)演算子を使用して、現在のフォルダから開始し、各ピリオドでディレクトリツリーの上に移動するディレクトリ/モジュールを参照します。
たとえば、python_file2.pyからファイルをインポートする場合、インポートするファイルはfolder2自体に含まれています。これは、-
from . import <filename>
からインポートすることができ、ファイルがfolder1にある場合は、別のピリオド(。)を追加して1つのディレクトリを移動すると、文は次のようになります。
from ..folder1 import <filename>
あなたのケースではfilenamepython_file1.pyです。お役に立てれば。

関連する問題