2009-06-08 23 views
14

Tôi đã cài đặt mô-đun đăng ký, đã thêm nó vào settings.py. Khi tôi cố gắng chạy (sitename.devsettings% python sitename/manage.py syncdb --settings) syncdbGặp khó khăn tại lỗi Django: Không có mô-đun có tên đăng ký

Nó đã cho tôi "Lỗi: Không mô-đun tên đăng ký"

Cùng công trình thiết lập (sử dụng các tập tin tương tự cho mọi thứ) tốt trên máy chủ. Điều này xảy ra trên máy cục bộ của tôi đang chạy OS X.

Tôi đã kiểm tra sys.path, đường dẫn nơi mô-đun đăng ký cư trú được liệt kê và mô-đun thực tế cũng được đặt đúng vị trí. Vì không có nhiều người khác được xuất, tôi không chắc chắn làm thế nào để gỡ lỗi hơn nữa. Điều gì có thể gây ra vấn đề này?

Trả lời

7

Có thể có lỗi Python trong các mẫu registration của bạn. Hãy thử bắt đầu một vỏ và nhập khẩu chúng, instantiating họ, vv

0

Dự đoán đầu tiên của tôi là bạn chưa thêm 'registration' vào installed apps trong tệp settings.py.

Có thể bạn đang sử dụng một số khác nhau settings.py (Hoặc localsettings.py) trên máy chủ.

+0

Điều đó sẽ không gây ra lỗi đó. Dù sao, ông đặc biệt nói rằng ông đã thêm nó vào settings.py. –

0

Chỉ cần cố gắng này

1) Đặt xuống ứng dụng đăng ký bên trong dự án của bạn như một ứng dụng

và làm syncdb


làm như bên dưới để tìm ra nguyên nhân chính xác của lỗi

1.go to you project directory 
2.python manage.py dbshell 
3.in shell 
4.import registration 
5.if you get error here which means your registration module is not 
there on the python path (or) some problem in finding that one. 
if it works then some other problem like improper compilation ............. 
+0

Tôi đã làm điều đó. Có lỗi khi thực hiện syncdb. – Boon

+0

đã chỉnh sửa câu trả lời của tôi, vui lòng xem và thử các bước đó. –

+1

"đăng ký nhập" hoạt động. Vẫn bị kẹt như trước: ( –

20

Vì trang này xếp hạng độc đáo trong Google, nó có vẻ như là một nơi tốt cho câu trả lời chung có thể hữu ích. Đôi khi tên thư mục trong svn/git khác với tên thư mục trong settings.py - một cái bẫy cho người không tự nguyện.

Vì vậy, nếu INSTALLED_APPS tham chiếu đến nội dung của bạn là mywhatever.someapp thì có thể bạn muốn settings.py nằm trong thư mục "mywhatever", với thư mục con "someapp" chứa tệp __init__.py.

+0

+1 - Điều này có thể sẽ giúp những người mới khác như bản thân mình. – sage

+0

Tôi * luôn luôn * quên làm điều này khi tôi tạo một thư mục "ứng dụng" và tôi kéo tóc ra (tốt, tôi không có tóc, nhưng bạn nhận được điểm) cho đến khi tôi nhớ đặt một tập tin __init__.py trong ứng dụng thư mục. – tfitzgerald

+2

bạn có nghĩa là '__init __. Py', phải không? – ObscureRobot

1

Đảm bảo bạn có mục nhập trong tệp installed_apps và bạn có tối thiểu 4 tệp trong ứng dụng của mình. init.py, urls.py, models.py và views.py

9

Bạn đề cập đến sys.path vì vậy bạn có thể đã thử điều này, tuy nhiên đây là vấn đề của tôi và tôi chắc rằng một số người đọc nội dung này có vấn đề quá.

mở cửa sổ lệnh và nhập (với dấu gạch chéo):

export PYTHONPATH=pathto/myproject/ 

sau đó nhập:

export DJANGO_SETTINGS_MODULE=settings 

này cho phép tôi để chỉnh sửa các thiết lập.tập tin py vào danh sách các INSTALLED_APPS như thế này:

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'myapp', 
    'registration', 
) 

thay vì:

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'myproject.myapp', 
    'myproject.registration', 
) 
6

tôi chỉ đơn giản là thiếu một dấu phẩy sau 'đăng ký' entry trong file settings.py. Sau khi tôi thêm dấu phẩy sau khi 'đăng ký', Syncdb đã làm việc cho tôi.

3

Tôi gặp sự cố này. Tôi đã lưu ứng dụng trong thư mục dự án (như trong cùng thư mục với manage.py), nhưng được tham chiếu đến "projectname.appname" thay vì chỉ "appname" trong INSTALLED_APPS trong settings.py.

1

Tôi đã có trên SX với virtualenv quá, sau khi cài đặt với PIP theo tài liệu. Tôi đã thực hiện một cài đặt khác bằng easy_install và sau đó, tất cả đều hoạt động.

easy_install -Z django-registration 
0

Nếu điều này xảy ra với bạn trên Windows và khi sử dụng virtualenv, điều này có thể do virtualenv.

Cài đặt gói đó trên môi trường cục bộ (không phải virtualenv) và nó sẽ hoạt động.

Tôi gặp vấn đề tương tự với các hình thức django-giòn.

6

chỉ làm điều này trong virtualenv bạn

pip install django-registration

+0

cũng kiểm tra để đảm bảo bạn không cài đặt dif v đăng ký (tức là django-registration-redux, et. All) – azochz

3

cố định! Tôi đã cùng một vấn đề, tôi đã cố gắng để đăng ký các môđun con, như:

project 
organization 
    categories 

Trong xác lập cá nhân nộp tôi thêm

> INSTALLED_APPS = (
>  'django.contrib.admin', 
>  'django.contrib.auth', 
>  'django.contrib.contenttypes', 
>  'django.contrib.sessions', 
>  'django.contrib.sites', 
>  ... 
>  'organization.categories', ) 

Khi bạn tạo ra một mô-đun trong các danh mục thư mục bạn có một init pyc tôi sao chép tập tin này vào thư mục "tổ chức", sau đó tôi thực hiện các lệnh sau:

sudo python manage.py makemigrations 
sudo ./manage.py syncdb 

Và nó hoạt động tập tin!

0

Tôi đã gặp vấn đề này cho đến khi phát hiện ra môi trường không được kích hoạt.

Kiểm tra xem Virtualenv của bạn có được kích hoạt hay không. Nếu không, hãy chạy trong shell

source .<enviroment name>/bin/activate 
0

Khi tôi đã cài đặt đăng ký django vào virtual virtual của mình, tôi đã gặp lỗi tương tự. Không biết làm thế nào nó hoạt động chính xác, nhưng khi tôi đã cài đặt này lib vào thư mục chính Python (không ảo env) lỗi đã biến mất.

Có thể nó sẽ giúp ích cho ai đó.

Các vấn đề liên quan