5

virtualenv を使用して Django を動作させようとしています。私はすでに Hello World ページをオンラインで入手しています。ただし、ほとんどのコマンドで myProject.settings について同じエラーが発生するため、何か問題があるようです。

(myenv)user@mint /opt/myenv/myProject $ python manage.py startapp polls
Traceback (most recent call last):
  File "manage.py", line 13, in <module>
    execute_from_command_line(sys.argv)
  File "/opt/myenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
    utility.execute()
  File "/opt/myenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/opt/myenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 263, in fetch_command
    app_name = get_commands()[subcommand]
  File "/opt/myenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 109, in get_commands
    apps = settings.INSTALLED_APPS
  File "/opt/myenv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 53, in __getattr__
    self._setup(name)
  File "/opt/myenv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 48, in _setup
    self._wrapped = Settings(settings_module)
  File "/opt/myenv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 134, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'myProject.settings' (Is it on sys.path?): No module named myProject.settings
(myenv)user@mint /opt/myenv/myProject $ 
4

3 に答える 3

7

Pythonsettings.pyでインポート可能である必要があります。これは、いくつかの方法で実現できます。

  • @amyangfeiが述べたように、環境、つまりに含まmyProjectれるフォルダーがありますPYTHONPATHsys.path

PYTHONPATHはこれをビルドするために python によって使用されるシステム環境変数sys.pathであり、その変更は OS に依存することに注意してください。Mac OS の場合はこのリファレンスを参照してください。Windows の場合はこのリファレンスを参照してください。PYTHONPATHは を構築するためだけに使用されsys.path、 での変更os.environ['PYTHONPATH']=<some_new_value>は大きな影響を与えないことに注意してください。

sys.pathただし、モジュールが必要なパッケージを見つけやすくするために、その場で変更することは可能importです。次の例を参照してください。

$ mkdir /tmp/tst
$ echo "print 'test'" > /tmp/tst/__init__.py
$ python -c "import tst"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named tst
$ python -c "import os; os.environ['PYTHONPATH']+=';/tmp'; import tst;"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named tst
$ python -c "import sys; sys.path.append('/tmp'); import tst;"
test
$ export PYTHONPATH=$PYTHONPATH:/tmp/
$ python -c "import tst"
test
  • python manage.pyを含むフォルダから 実行できますmyProject

後者が機能するには、プロジェクト構造が次のようになっている必要があります。

manage.py
myProject/
    settings.py
  • 最後のオプションです。manage.py と settings.py が同じ場所にある場合は、環境変数DJANGO_SETTINGS_MODULEsettingsではなく に変更myProject.settingsするか、引数を指定して実行python manage.py--settings=settingsます。
于 2013-11-02T12:41:05.540 に答える
4

このようなことを試しましたか?多分うまくいくでしょう。

python manage.py startapp polls --settings=myProject.settings
于 2013-11-02T11:27:10.720 に答える
1

'/opt/myenv/myProject'あなたのpython sys.pathにあるかどうかを確認してください。(python doc: sys.path[0] を参照してください。これは、Python インタープリターを呼び出すために使用されたスクリプトを含むディレクトリです。スクリプト ディレクトリが使用できない場合 (たとえば、インタープリターが対話的に呼び出された場合、またはスクリプトが標準入力)、path[0] は空の文字列) ( http://docs.python.org/2/library/sys.html#sys.path )

➜  mysite  python
Python 2.6.8 (unknown, Aug 25 2013, 00:04:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.path
['', '/Users/xxx/xxx/', ... ]

ここで同様の質問: ImportError: Could not import settings , Could not import settings 'myproject.settings' (Is it on sys.path?): No module named pinax

于 2013-11-02T11:03:20.840 に答える