2017-03-28 15 views
6

Gần đây tôi đã cố gắng để có được wagtail để làm việc với ứng dụng Django hiện có của tôi. Tôi đã trải qua một lỗi: -Cách giải quyết không thể nhập các trang tên (django/wagtail)

ImportError: No module named wagtail 
unable to load app 0 (mountpoint='') (callable not found or import error) 

Sau khi xử lý sự cố nhiêu tôi quản lý để khắc phục điều này, bằng cách sao chép chim chìa vôi thư mục từ:

/usr/local/lib/python2.7/dist-packages/ 

vào đây

/opt/django/src/ 

Sau khi giải quyết lỗi này , Tôi đã nhận được một mô-đun khác về một mô-đun khác và một mô-đun khác ... mỗi lần tôi sao chép thư mục từ /usr/local/lib/python2.7/dist-packages/ vào /opt/django/src/ và cuối cùng nó đã được giải quyết e vấn đề tôi đã có và uWSGI bắt đầu.

Bây giờ khi tôi truy cập vào trang chủ của ứng dụng của tôi, tôi nhận được lỗi này

ImportError at/

cannot import name pages 

    Request Method:  GET 
Request URL: http://example.com 
Django Version:  1.9 
Exception Type:  ImportError 
Exception Value:  

cannot import name pages 

Exception Location:  ./wagtail/wagtailadmin/urls/__init__.py in <module>, line 4 
Python Executable: /usr/local/bin/uwsgi 
Python Version:  2.7.3 
Python Path:  

['.', 
'', 
'/opt/django/src', 
'/root/.python', 
'/opt/django/env/lib/python2.7', 
'/opt/django/env/lib/python2.7/plat-linux2', 
'/opt/django/env/lib/python2.7/lib-tk', 
'/opt/django/env/lib/python2.7/lib-old', 
'/opt/django/env/lib/python2.7/lib-dynload', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-linux2', 
'/usr/lib/python2.7/lib-tk', 
'/opt/django/env/local/lib/python2.7/site-packages', 
'/opt/django/env/lib/python2.7/site-packages'] 

Tôi đã kiểm tra các tập tin tham chiếu (./wagtail/wagtailadmin/urls/__init__.py) và nó trông như thế này:

from django.conf.urls import url, include 
from django.views.decorators.cache import cache_control 

from wagtail.wagtailadmin.urls import pages as wagtailadmin_pages_urls 
from wagtail.wagtailadmin.urls import collections as wagtailadmin_collections_urls 
from wagtail.wagtailadmin.urls import password_reset as wagtailadmin_password_reset_urls 
from wagtail.wagtailadmin.views import account, chooser, home, pages, tags, userbar 
from wagtail.wagtailadmin.api import urls as api_urls 
from wagtail.wagtailcore import hooks 
from wagtail.utils.urlpatterns import decorate_urlpatterns 
from wagtail.wagtailadmin.decorators import require_admin_access 

Dòng vi phạm là chim chìa vôi đầu tiên 'từ' ...

from wagtail.wagtailadmin.urls import pages as wagtailadmin_pages_urls

Làm thế nào tôi có thể giải quyết này lỗi?

+0

Tôi cũng gặp vấn đề tương tự. Hãy để tôi nếu bạn giải quyết vấn đề này. – Gaurav

+1

Thay vì sao chép các tệp từ '/ usr/local/lib/python2.7/dist-packages /' Bạn nên sử dụng virtualenv và sử dụng 'pip' để cài đặt wagtail. –

+0

Đã làm nhưng cùng một vấn đề. Tôi nghĩ rằng vấn đề có liên quan đến nginx. Hiển thị 502 cổng xấu của nó. – Gaurav

Trả lời

4

Tôi đã chạy một vài bài kiểm tra về thiết lập wagtail. Tôi đã thực hiện từng bài kiểm tra trong bản cài đặt Ubuntu 14 mới (mỗi bài kiểm tra trong một không gian làm việc mới trên Cloud9 IDE).

Test 1: Straight python 2,7

sudo pip install wagtail 
ERRO: error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 

Bình luận: Rất nhiều x86_64-linux-gnu-gcc: error: build/temp.linux-x86_64-2.7/libImaging/codec_fd.o: No such file or directory lỗi là đầu ra. Không hoạt động.

Test 2 - Python 2.7 với virtualenv

sudo pip install virtualenv 
virtualenv env 
source env/bin/activate 

Bây giờ từ github của họ https://github.com/wagtail/wagtail

pip install wagtail 
out: Successfully installed Django-1.10.7 Pillow-4.1.1 Unidecode-0.4.20 Willow-0.4 beautifulsoup4-4.5.3 django-modelcluster-3.1 django-taggit-0.22.1 django-treebeard-4.1.0 djangorestframework-3.6.2 html5lib-0.999999999 olefile-0.44 pytz-2017.2 requests-2.13.0 wagtail-1.9.1 webencodings-0.5.1 
wagtail start mysite 
cd mysite 
python manage.py migrate 
python manage.py createsuperuser 
python manage.py runserver 

tôi phải chỉnh sửa cài đặt/dev.py và bao gồm ALLOWED_HOSTS = ['*'] vì tôi đang trên đám mây 9 Ngoài ra cần có $ IP: $ PORT sau khi chạy máy chủ. ĐÃ LÀM VIỆC!

Test3 - Python 3.4 với virtualenv

sudo pip3 install virtualenv 
virtualenv -p python3 env 
source env/bin/activate 
pip install wagtail 
Successfully installed Django-1.10.7 Pillow-4.1.1 Unidecode-0.4.20 Willow-0.4 beautifulsoup4-4.5.3 django-modelcluster-3.1 django-taggit-0.22.1 django-treebeard-4.1.0 djangorestframework-3.6.2 html5lib-0.999999999 olefile-0.44 pytz-2017.2 requests-2.13.0 wagtail-1.9.1 webencodings-0.5.1 

Phần còn lại của lệnh đều giống nhau. Va no đa hoạt động!

thử nghiệm 4 - Python 3.4 không virtualenv

sudo pip3 install wagtail 
out: Successfully installed wagtail django-taggit requests Unidecode Django djangorestframework Pillow beautifulsoup4 Willow django-modelcluster django-treebeard olefile pytz 
wagtail start mysite 
python3 manage.py migrate 
python3 manage.py createsuperuser 
python3 manage.py runserver 

EDIT: Đã thực hiện một sai lầm. Nên đã chạy với python3, không phải python trong trường hợp này. Đã làm nó một lần nữa và làm việc!

Kết luận: Có vẻ như bạn cần virtualenv để làm việc trên Ubuntu 14 và python2. Với python3 nó hoạt động với và không có virtualenv.Tôi không thể tái tạo lỗi của bạn, nhưng ý tưởng là như nhau: nó không hoạt động bởi vì nó tìm kiếm những thứ ở sai chỗ.

Bình luận: Có hai điều bạn đề cập đến mà tôi không thể kiểm tra:

I have been trying to get wagtail to work with my existing Django application

Với số lượng lớn này phụ thuộc nặng nề, (Gối, Django nghỉ ngơi, beatifullsoup và những người khác tôi chưa bao giờ nghe nói về) nó sẽ là lạ nếu nó làm việc ra khỏi hộp với một thiết lập trước đó. Tôi có nghĩa là, Django là một phụ thuộc cho wagtail. Vì vậy, tôi sẽ thử cách khác xung quanh. Bắt đầu tươi với wagtail và cổng mã của bạn ở đó (với python3 vì lợi ích của cộng đồng;)). Ngoài ra bản sao thủ công của các tập tin này cũng giống như cơn ác mộng của các lập trình viên tồi tệ nhất (ít nhất là với tôi). Điều này trông giống như một vấn đề phiên bản. Cố gắng đăng các phiên bản của mọi thứ liên quan và các bước chính xác để tái tạo sự cố. Tôi có nghĩa là, bạn đã pip cài đặt wagtail trong hệ điều hành mà django đã chạy?

I was having and uWSGI started.

Vì vậy, bạn đã triển khai ứng dụng của mình chưa? Điều này làm phức tạp mọi thứ. Nếu các phiên bản và virtualenv không giải quyết được vấn đề của bạn, cộng đồng cần các chi tiết thiết lập triển khai. Ngoài ra bạn đã không đề cập đến hệ thống hoạt động của bạn.

Tôi hy vọng điều này sẽ hữu ích! Chúc may mắn!

1

Tôi chạy vào lỗi

cannot import name pages

tại địa chỉ:

from wagtail.wagtailadmin.urls import pages as wagtailadmin_pages_urls

trong khi cố gắng triển khai một ứng dụng chim chìa vôi Google App Engine và không thể lặp lại trong các vấn đề trên máy chủ dev địa phương của tôi.

Lỗi dường như không liên quan mà tôi chỉ thấy không liên tục trong GAE liên quan đến lỗi nhập trong thư viện PIL. Tôi đã có thể giải quyết BOTH lỗi bằng cách xóa PIL và các thư mục liên quan đến gối từ các gói được yêu cầu của tôi trong thư mục/lib của tôi. Tôi đã phải nhập PIL thông qua tệp app.yaml thay vì do nền tảng nhị phân cụ thể, nhưng chạy pip install-lib /-requirements-vendor.txt cũng khiến PIL được cài đặt vào thư mục lib (như là sự phụ thuộc của Wagtail)

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