2013-08-04 33 views
11

Tôi nhận được satchmo để thử, nhưng tôi có một vấn đề lớn lúc đầu thử, và tôi không hiểu whats sai. Khi tôi làm $ python clonesatchmo.py vào dự án django rõ ràng, nó trows một lỗi:Satchmo clonesatchmo.py ImportError: không thể nhập tên execute_manager

$ python clonesatchmo.py 
Creating the Satchmo Application 
Customizing the files 
Performing initial data synching 
Traceback (most recent call last): 
    File "manage.py", line 18, in <module> 
    from django.core.management import execute_manager 
ImportError: cannot import name execute_manager 
Traceback (most recent call last): 
File "manage.py", line 18, in <module> 
    from django.core.management import execute_manager 
ImportError: cannot import name execute_manager 
Error: Can not copy the static files. 
Error: Can not syncdb. 

VÀ tạo ra một thư mục lưu trữ. cố gắng smth như thế này đang làm việc !!:

$ python manage.py shell 
>>> import os, sys 
>>> print sys.executable 
/some/path/to/python 
>>> os.system('bash') 
$ /some/path/to/python manage.py validate 
# this is NOT fail on "from django.core.management import execute_manager" 

Tôi có Django 1.6 và Satchmo 0.9.3, python 2.7.5 (Tôi không sử dụng virtualenv)

+0

"(Tôi không sử dụng virtualenv)" orly? '/ some/path/to/python' trông giống như vậy. – AdamKG

+0

@AdamKG Nhưng nó là đường dẫn standart ... nó đã được tư vấn trong các nhóm google để thực hiện hành động này .. "/ some/path/to/python" là: '/Library/Frameworks/Python.framework/Versions/2.7/ Tài nguyên/Python.app/Nội dung/MacOS/Python' – Pruntoff

Trả lời

11

execute_manager được đặt trên con đường deprecation như là một phần của refactor layout dự án ở Django 1.4 https://docs.djangoproject.com/en/1.4/releases/1.4/#django-core-management-execute-manager. Theo chính sách không dùng nữa có nghĩa là mã cho execute_manager đã bị xóa hoàn toàn trong 1.6. Nếu bạn thấy lỗi nhập này thì phiên bản Satchmo bạn đang sử dụng chưa được cập nhật để tương thích với Django 1.6.

+1

Cảm ơn rất nhiều !! Nhưng làm thế nào tôi có thể xác định vị trí để thay thế nó? Tôi thay thế tất cả các hàng nhập khẩu trong 'manage.py's nhưng có vẻ như tôi bỏ lỡ smth ... – Pruntoff

+0

Ngay cả khi bạn sửa lỗi nhập này, tôi không nghĩ bạn có thể làm việc này. Satchmo không yêu cầu hỗ trợ Django 1.5 ít hơn 1,6 mà hiện đang ở phiên bản beta. –

65

Thay thế nội dung của manage.py bằng nội dung sau (từ dự án django 1.6 mới).

#!/usr/bin/env python 
import os 
import sys 

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<app>.settings") 

    from django.core.management import execute_from_command_line 

    execute_from_command_line(sys.argv) 
+7

Imo, đây phải là câu trả lời được chấp nhận. – swdev

+0

nó cũng làm việc cho tôi !! –

+1

điều này đã giúp tôi trong việc tìm cách làm thế nào ot sử dụng ví dụ của google để sử dụng api của họ từ django http://code.google.com/p/google-api-python-client/source/browse/#hg%2Fsamples%2Fdjango_sample – Michael

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