2012-08-24 4 views
7

Tôi đang trong vỏ python đơn giản và tôi nhận được lỗi này khi cố gắng nhập các mô hình dự án của tôi:từ django.db nhập khẩu utils ImportError không thể nhập utils tên?

from results.models import TestResult 

Traceback (most recent call last): 
    File "C:\Program Files (x86)\Wing IDE 3.2\src\debug\tserver\_sandbox.py", line 1, in <module> 
    # Used internally for debug sandbox under external interpreter 
    File "C:\Users\audrey_moreau\myProject\results\models.py", line 1, in <module> 
    from django.db import models 
    File "c:\Python27\Lib\site-packages\django\db\__init__.py", line 40, in <module> 
    backend = load_backend(connection.settings_dict['ENGINE']) 
    File "c:\Python27\Lib\site-packages\django\db\__init__.py", line 34, in __getattr__ 
    return getattr(connections[DEFAULT_DB_ALIAS], item) 
    File "c:\Python27\Lib\site-packages\django\db\utils.py", line 92, in __getitem__ 
    backend = load_backend(db['ENGINE']) 
    File "c:\Python27\Lib\site-packages\django\db\utils.py", line 54, in load_backend 
    return import_module('.base', backend_name) 
    File "c:\Python27\Lib\site-packages\django\utils\importlib.py", line 35, in import_module 
    __import__(name) 
    File "c:\Python27\Lib\site-packages\django\db\backends\sqlite3\base.py", line 14, in <module> 
    from django.db import utils 
ImportError: cannot import name utils 

bất cứ ai có thể cho tôi một con trỏ về cách để sửa lỗi này? Tôi đang sử dụng Python 2.7.

+1

Cài đặt lại Django –

+2

Bạn đã tạo gói hoặc mô-đun của riêng bạn có tên là 'utils' có thể gây ra xung đột lạ không? Không thuyết phục cài đặt lại Django là câu trả lời như rõ ràng của nó tìm thấy các tập tin django.db.utils. Theo dõi ngăn xếp cho thấy mã thực thi của nó trong đó. – mleonard87

+0

Bạn đã đặt môi trường đúng chưa? Bạn nói rằng bạn đang ở trong vỏ python đồng bằng, nhưng để sử dụng mô hình django bạn cần phải được bên trong vỏ django hoặc cấu hình vỏ của bạn để làm việc. – aherok

Trả lời

1

Tôi đã gặp lỗi này và do django_nose gây ra. Tôi đã cố gắng để nhập khẩu django_nose từ settings.py để xác định nếu nó tồn tại trên hệ thống như thế này:

try: 
    import django_nose 
    INSTALLED_APPS += ['django_nose'] 
    TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' 
except ImportError: 
    pass 

tôi sửa đổi này để

from imp import find_module 
try: 
    find_module('django_nose') 
    INSTALLED_APPS += ['django_nose'] 
    TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' 
except ImportError: 
    pass 

và vấn đề của tôi đã được giải quyết ...

1

Tôi không biết lý do chính xác, nhưng bằng cách sử dụng vỏ python của Django tức là {$./Manage.py shell} không ném lỗi. Tôi nghĩ rằng Django không có tùy chỉnh riêng của nó ít/trọng của các gói python, do đó sự thay đổi trong thông dịch viên truyền thống.

0

Tôi đã gặp lỗi tương tự. Gỡ cài đặt và cài đặt lại django đã quan tâm đến nó:

sudo pip uninstall django 
sudo pip install django 
0

thêm django vào đường dẫn của bạn. Tôi đã có một vấn đề tương tự và nó đã làm việc cho tôi.