最近,我一直在尝试使用我现有的Django应用程序。我遇到了一个错误: -
ImportError: No module named wagtail
unable to load app 0 (mountpoint='') (callable not found or import error)
经过多次故障排除后,我设法通过复制文件夹wagtail来解决这个问题:
/usr/local/lib/python2.7/dist-packages/
进入这里
/opt/django/src/
解决了这个错误,我收到了另一个关于另一个模块的信息,另一个...我每次将文件夹从/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']
我已检查引用的文件(./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
违规行是&#39;来自&#39; ...
来自wagtail.wagtailadmin.urls导入页面为wagtailadmin_pages_urls
如何解决此错误?
答案 0 :(得分:4)
我在wagtail设置上运行了一些测试。我在一个全新的Ubuntu 14安装中进行了每项测试(每个测试都在Cloud9 IDE的新工作区中进行。)
测试1:Straight python 2.7
sudo pip install wagtail
ERRO: error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
评论:输出了大量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
现在来自他们的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
我必须编辑设置/ dev.py并包含ALLOWED_HOSTS = ['*']
,因为我在云端9上。还需要在运行服务器之后使用$ IP:$ PORT。工作!
Test3 - 使用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
其余命令是相同的。它工作了!
测试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
编辑:犯了一个错误。在这种情况下应该运行python3,而不是python。它再次成功了吗?
结论:看起来你需要一个virtualenv才能在Ubuntu 14和python2上运行。使用python3它可以使用和不使用virtualenv。我无法重现你的错误,但想法是一样的:它不起作用,因为它在错误的地方寻找东西。
评论:你提到的两件事我无法测试:
我一直在努力与现有的Django合作 应用
有了大量的重依赖,(Pillow,Django休息,beatifullsoup和其他我从未听说过的)如果它开箱即用,之前的设置会很奇怪。我的意思是,Django是wagtail的依赖。所以我会尝试相反的方式。从wigtail开始新鲜并在那里移植你的代码(为了社区而使用python3;))。此手册的文件副本就像程序员最糟糕的噩梦(至少对我来说)。这看起来像版本问题。尝试发布所涉及的所有内容的版本,以及重现问题的确切步骤。我的意思是,你是否在django运行的操作系统中安装了wagtail?
我正在和uWSGI开始。
所以你已经部署了你的应用程序?这使事情复杂化。如果版本和virtualenv无法解决您的问题,社区需要设置部署的详细信息。你还没有提到你的操作系统。
我希望这有帮助!祝你好运!
答案 1 :(得分:1)
我遇到了
无法导入名称页
错误:
来自wagtail.wagtailadmin.urls导入页面为wagtailadmin_pages_urls
尝试将一个wagtail应用程序部署到Google App Engine时无法在我的本地开发服务器上复制该问题。
我在GAE中间歇性地看到的看似无关的错误涉及PIL库中的导入错误。我能够通过删除我/ lib目录中我的销售包中的PIL和枕头相关文件夹来解决两个错误。由于平台特定的二进制文件,我不得不通过app.yaml文件导入PIL,但运行pip install -t lib / -r requirements-vendor.txt也导致PIL安装到lib文件夹中(作为依赖关系)鸰)