Gar*_*ary 6 python django wagtail
最近,我一直在尝试使用我现有的Django应用程序.我遇到了一个错误: -
ImportError: No module named wagtail
unable to load app 0 (mountpoint='') (callable not found or import error)
Run Code Online (Sandbox Code Playgroud)
经过多次故障排除后,我设法通过复制文件夹wagtail来解决这个问题:
/usr/local/lib/python2.7/dist-packages/
Run Code Online (Sandbox Code Playgroud)
进入这里
/opt/django/src/
Run Code Online (Sandbox Code Playgroud)
解决了这个错误之后,我收到了另一个关于另一个模块的信息,另一个...我每次将文件夹复制 /usr/local/lib/python2.7/dist-packages/到其中/opt/django/src/并最终解决了我遇到的问题并且uWSGI启动了.
现在当我访问我的应用程序的主页时,我收到此错误
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']
Run Code Online (Sandbox Code Playgroud)
我检查了文件referenced(./wagtail/wagtailadmin/urls/__init__.py),它看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
违规行是第一个来自'...的'w'
从wagtail.wagtailadmin.urls导入页面为wagtailadmin_pages_urls
我该如何解决这个错误?
我对 wagtail 设置进行了一些测试。我在全新安装的 Ubuntu 14 中进行了每个测试(每个测试都在Cloud9 IDE上的新工作区中进行)。
测试1:直Python 2.7
sudo pip install wagtail
ERRO: error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)
x86_64-linux-gnu-gcc: error: build/temp.linux-x86_64-2.7/libImaging/codec_fd.o: No such file or directory注释:输出了很多错误。没用。
测试 2 - 使用 virtualenv 的 Python 2.7
sudo pip install virtualenv
virtualenv env
source env/bin/activate
Run Code Online (Sandbox Code Playgroud)
现在从他们的 github 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
Run Code Online (Sandbox Code Playgroud)
我必须编辑 settings/dev.py 并包含,ALLOWED_HOSTS = ['*']因为我在 cloud 9 上。在 runserver 之后还需要 $IP:$PORT 。成功了!
测试 3 - 使用 virtualenv 的 Python 3.4
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
Run Code Online (Sandbox Code Playgroud)
其余命令相同。它奏效了!
测试 4 - Python 3.4 无 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
Run Code Online (Sandbox Code Playgroud)
编辑:犯了一个错误。在本例中应该使用 python3 运行,而不是 python 。又做了一次,成功了!
结论:看来你需要一个 virtualenv 才能在 Ubuntu 14 和 python2 上工作。对于 python3,它可以在有或没有 virtualenv 的情况下工作。我无法重现您的错误,但想法是相同的:它不起作用,因为它在错误的位置查找内容。
评论:你提到的两件事我无法测试:
我一直在尝试让 wagtail 与我现有的 Django 应用程序一起工作
有了如此大量的依赖项(Pillow、Django Rest、beatifullsoup 和其他我从未听说过的),如果它在以前的设置中开箱即用,那就很奇怪了。我的意思是,Django 是 wagtail 的依赖项。所以我会尝试相反的方式。从 wagtail 开始,并将代码移植到那里(为了社区,使用 python3 ;))。此外,这种手动复制文件就像程序员最糟糕的噩梦(至少对我来说)。这看起来像是版本问题。尝试发布所涉及的所有内容的版本以及重现问题的确切步骤。我的意思是,您是否在 django 运行的操作系统中 pip install wagtail ?
我正在经历,uWSGI 开始了。
那么您已经部署了应用程序吗?这让事情变得复杂了。如果版本和 virtualenv 不能解决您的问题,社区需要部署的设置详细信息。另外你还没有提到你的操作系统。
我希望这有帮助!祝你好运!
| 归档时间: |
|
| 查看次数: |
800 次 |
| 最近记录: |