6

次のフォルダー構造があります

アプリ/
アプリ/ヘルパー/
アプリ/ヘルパー/メソッドヘルパー.py
アプリ/メソッド/
アプリ/メソッド/method.py

method.py内のmethodhelper.pyから関数をインポートしようとしている
ので、次のことを試しました:

import app.helpers.methodhelper
また
from app.helpers.methodhelper import function1
また
import helpers.methodhelper

そして私は得る:

"No module named app.helpers.methodhelper" 

重要な注意事項:helpers/__init__.py既に存在します

これはどのように行うべきですか?

4

2 に答える 2

8

Django プロジェクトのデフォルト パスは、プロジェクトのルート ディレクトリ (manage.py ファイルがある場所) にあります。その下のサブディレクトリを PYTHONPATH に追加するか (sys.path に追加することで簡単に実行できます)、完全なモジュール パスを使用してその関数をインポートできます。

from projectname.app.helpers.methodhelper import function1

Django プロジェクトを開始するときは、常に追加します

PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))

私にsettings.py。このパスは に似てい/home/kyle/django_project_name/ます。その中に直接ありmanage.pyます。

そこから、私の にも、次のsettings.pyものを含めます。

sys.path.append(os.path.join(PROJECT_ROOT, 'django_project_name'))

これにより、プロジェクト名をモジュール パスに含める必要なく、アプリをインポートできるようになります。

于 2013-05-13T21:08:55.587 に答える