3

重複の可能性:
Python でテスト モジュールから src をインポートする方法

別のディレクトリにある別のモジュールを呼び出したいです。私のコード ストラクタは

flask_beginner/
  app.py
  models/
      __init__.py
      user.py
  tests/
      __init__.py
      user_test.py

user_test.py からユーザーモジュールを呼び出したい。私のuser_test.pyはこのようなものです..

import models.user
....

しかし、models.user という名前のモジュールがないというエラーが発生します

何か考えはありますか?私のPythonバージョンは2.7.2です(virtualenvを使用)

前もって感謝します。

4

3 に答える 3

5
import sys
sys.path.append('PathToModule')
import models.user
于 2012-12-04T16:30:56.500 に答える
1

tests ディレクトリから user_test.py を実行している場合、models パッケージを見つけることができません。ただし、flask_beginner ディレクトリから実行すると、モジュールを見つけることができます。スクリプトを実行しているディレクトリが python パスに追加されているため、プロジェクト内のすべてのモジュールを見つけることができます。

于 2012-12-04T16:43:01.563 に答える
1

を実行するimport <module_name>と、Python はPythonPath変数内のすべてのディレクトリでその名前のモジュールを検索し、見つかった場合はそれをインポートします。通常、現在のディレクトリ (つまり、スクリプトが実行されているディレクトリ) は にPythonPathあるため、ほとんどのスクリプトは同じディレクトリにあるモジュールを見つけることができます。

別のディレクトリにあるモジュールをインポートする必要がある場合は、そのディレクトリを PythonPath に追加する必要があります。これは次のように行うことができます。

import sys
sys.path.append(<the_path_to_the_module>)

(もちろん、<the_path_to_the_module>この場合は正しいパスに置き換える必要があります'../models/user.py'

于 2012-12-04T16:49:14.497 に答える