2

wsgi.pyファイルでエラーが発生しています。それは不平を言っています:

File "(directory)/.local/lib/python2.7/site-packages/Django-1.5 py2.7.egg/django/core/handlers/wsgi.py", line 9, in <module>
    from django import http
ImportError: cannot import name http

ディレクトリhttpが(directory)/。local / lib / python2.7 / site-packages / Django-1.5 py2.7.egg /django/に存在することを確認しました。また、django.coreをインポートする場合は問題ありませんが、他のモジュールをインポートする場合も同じエラーが発生します。(ディレクトリ)/。local / lib / python2.7 / site-packages / Django-1.5 py2.7.egg /django/のディレクトリ情報は次のとおりです。

django:
    bin  conf  contrib  core  db  dispatch  forms  http  __init__.py  __init__.pyc  middleware  shortcuts  template  templatetags  test  utils  views

そしてここにhttpのディレクトリ情報があります:

http:
    cookie.py  cookie.pyc  __init__.py  __init__.pyc  multipartparser.py  multipartparser.pyc  request.py  request.pyc  response.py  response.pyc  utils.py  utils.pyc

編集:

Pythonシェルでエラーが発生しました:

>>from django import http
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name http

>>from django import core
>>

djangoとも呼ばれるローカルディレクトリを削除することでエラーが解決されました。ただし、サイトパッケージを編集できない共有サーバーにサイトを配置しているため、ローカルディレクトリは配置されていました。サーバーのdjangoディレクトリにないモジュールを使用できるように、アプリケーションがローカルフォルダーとサーバーのdjangoフォルダーの両方から読み取る方法はありますか?

4

2 に答える 2

1

ローカルのdjangoフォルダーを名前空間に変えることができます。これにより、Pythonインタープリターは、以前に一致するモジュール(つまり、追加した「django」モジュール)が見つかった場合でも、モジュールのパスをトラバースし続けるように指示されます。

これをローカルのdjangoフォルダーの__init__。pyに追加します。

import pkg_resources
pkg_resources.declare_namespace(__name__)

Pythonはこのモジュールを見つけると、このコードを実行して名前空間として登録します。

于 2013-03-26T18:04:58.260 に答える
0

ローカルモジュールを指すようにPYTHONPATH環境変数を設定する必要があります。

于 2013-03-26T18:01:52.307 に答える