3

私は現在、django を使用してかなり単純なアプリケーションを開発しようとしていますが、最初はかなり行き詰っています。プロジェクトの名前は「kundencenter」で、アプリの名前は「customermgr」です。

プロジェクトとアプリの両方に があり、プロジェクトにはアプリがurls.py含まurls.pyれています:

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^customer/', include('kundencenter.customermgr.urls')),
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

しかし、アクセスしようとするとcustomer/、次のメッセージが表示されますImportError

Django Version: 1.4
Exception Type: ImportError
Exception Value:    
No module named customermgr.urls
Exception Location: /usr/local/lib/python2.7/dist-packages/django/utils/importlib.py in import_module, line 35
Python Executable:  /usr/bin/python
Python Version: 2.7.1
Python Path:    
    ['/usr/lib/python2.7',
     '/usr/lib/python2.7/plat-linux2',
     '/usr/lib/python2.7/lib-tk',
     '/usr/lib/python2.7/lib-old',
     '/usr/lib/python2.7/lib-dynload',
     '/usr/local/lib/python2.7/dist-packages',
     '/usr/lib/python2.7/dist-packages',
     '/usr/lib/python2.7/dist-packages/PIL',
     '/usr/lib/python2.7/dist-packages/gtk-2.0',
     '/usr/lib/pymodules/python2.7',
     '.',
     '/var/www/kundencenter',
     '/var/www']

ご覧のとおり、私はすでに に夢中になっていますが、PYTHONPATH役に立ちませんでした。ご想像のとおり、プロジェクトは にあり/var/www/kundencenterます。__init__.pyまた、ファイルが作成されたこと、それらが空であることも確認しました。manage.py runservermod_wsgiでApacheを実行し、使用するとエラーが表示されます。

私はほとんど私の知恵の終わりにいます。このエラーを取り除く方法を知っている人はいますか?

4

4 に答える 4

2

プロジェクト名なしで試しましたか?

url(r'^customer/', include('customermgr.urls')),

それ以外の

url(r'^customer/', include('kundencenter.customermgr.urls')),

ところで、そうでない場合は、可能な限り最短のパスでモデル (またはその他すべて) をインポートしてください。同じアプリ内でモデルをインポートする場合は、「from models import X,Y,Z」を使用してください。

他のアプリからモデル、関数、クラスなどをインポートする必要がある場合は、「from my_other_app.models import X,Y,Z」を使用しますが、プロジェクト名は含めないでください。

いつか、別の django プロジェクトのためにアプリをリサイクルしたい場合、多少の手間は省けます :)

于 2012-06-03T10:14:13.640 に答える
1

Django と必要な他のすべてのモジュール/ライブラリのインストールを含め、PIP を使用して仮想環境の下ですべてを構築する必要があります。そうすれば、Python パスをいじる心配はありません。Python+Django+Virtualenv+PIP の Google を試して、推奨されるセットアップのいくつかを読んでください。インストールと構成のプロセス全体が本当に単純化されます。さらに、すべてが自己完結型であり、Fabric またはその他の展開ツールを使用して簡単に展開できます。

頑張ってください。

于 2012-08-21T21:10:52.560 に答える
0

最初に取得された同じ名前の Python モジュール検索パスの別の場所にモジュール/パッケージがインストールされている可能性があります。

WSGI スクリプト ファイルの先頭に追加します。

import kundencenter
print kundencenter.__file__

そしてそれがどこから拾われるかを見てください。

于 2012-06-03T11:42:46.053 に答える
0

PYTHONPATH を次のように設定します。

['/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-linux2',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PIL',
 '/usr/lib/python2.7/dist-packages/gtk-2.0',
 '/usr/lib/pymodules/python2.7',
 '/var/www/kundencenter']

と urlpatterns へ:

urlpatterns = patterns('',
    url(r'^customer/', include('customermgr.urls')),
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

あなたのディレクトリ構造がわからないので、これが私の最善の推測です。

于 2012-06-03T12:10:18.367 に答える