如何解决无法导入名称页面(django/wagtail)
How to resolve cannot import name pages (django/wagtail)
最近我一直在尝试让 wagtail 与我现有的 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
违规行是第一个鹡鸰'from' ...
from wagtail.wagtailadmin.urls import pages as 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
评论:输出了很多 x86_64-linux-gnu-gcc: error: build/temp.linux-x86_64-2.7/libImaging/codec_fd.o: No such file or directory
个错误。
没用。
测试 2 - Python 2.7 with virtualenv
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
我不得不编辑 settings/dev.py 并包含 ALLOWED_HOSTS = ['*']
因为我在云 9 上。还需要 运行 服务器之后的 $IP:$PORT。成功了!
Test3 - Python 3.4 with 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
其余命令相同。成功了!
测试 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。我无法重现你的错误,但想法是一样的:它不起作用,因为它在错误的地方寻找东西。
评论:你提到的有两件事我无法测试:
I have been trying to get wagtail to work with my existing Django
application
由于存在大量依赖项(Pillow、Django rest、beatifullsoup 和其他我从未听说过的),如果它在之前的设置中开箱即用,那将是 st运行ge .我的意思是,Django 是 wagtail 的依赖项。所以我会尝试相反的方法。使用 wagtail 重新开始并将您的代码移植到那里(为了社区的缘故,使用 python3 ;))。此外,这种文件的手动副本就像程序员最糟糕的噩梦(至少对我而言)。这看起来像是版本问题。尝试 post 所有涉及的版本,以及重现问题的确切步骤。我的意思是,您是否在 django 运行ning 的操作系统中 pip install wagtail?
I was having and uWSGI started.
所以您已经部署了您的应用程序?这使事情复杂化。如果版本和 virtualenv 不能解决你的问题,社区需要部署的设置细节。你也没有提到你的操作系统。
希望对您有所帮助!祝你好运!
我运行进
cannot import name pages
错误发生在:
from wagtail.wagtailadmin.urls import pages as wagtailadmin_pages_urls
在尝试将 wagtail 应用程序部署到 Google App Engine 时,无法在我的本地开发服务器上重现该问题。
我只是间歇性地在 GAE 中看到的一个看似无关的错误涉及 PIL 库中的导入错误。我能够通过从我的 /lib 目录中的 vendored 包中删除 PIL 和 pillow 相关文件夹来解决这两个错误。由于平台特定的二进制文件,我不得不通过 app.yaml 文件导入 PIL,但是 运行 pip install -t lib/ -r requirements-vendor.txt 导致 PIL 安装到 lib文件夹(作为 Wagtail 的依赖项)
最近我一直在尝试让 wagtail 与我现有的 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
违规行是第一个鹡鸰'from' ...
from wagtail.wagtailadmin.urls import pages as 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
评论:输出了很多 x86_64-linux-gnu-gcc: error: build/temp.linux-x86_64-2.7/libImaging/codec_fd.o: No such file or directory
个错误。
没用。
测试 2 - Python 2.7 with virtualenv
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
我不得不编辑 settings/dev.py 并包含 ALLOWED_HOSTS = ['*']
因为我在云 9 上。还需要 运行 服务器之后的 $IP:$PORT。成功了!
Test3 - Python 3.4 with 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
其余命令相同。成功了!
测试 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。我无法重现你的错误,但想法是一样的:它不起作用,因为它在错误的地方寻找东西。
评论:你提到的有两件事我无法测试:
I have been trying to get wagtail to work with my existing Django application
由于存在大量依赖项(Pillow、Django rest、beatifullsoup 和其他我从未听说过的),如果它在之前的设置中开箱即用,那将是 st运行ge .我的意思是,Django 是 wagtail 的依赖项。所以我会尝试相反的方法。使用 wagtail 重新开始并将您的代码移植到那里(为了社区的缘故,使用 python3 ;))。此外,这种文件的手动副本就像程序员最糟糕的噩梦(至少对我而言)。这看起来像是版本问题。尝试 post 所有涉及的版本,以及重现问题的确切步骤。我的意思是,您是否在 django 运行ning 的操作系统中 pip install wagtail?
I was having and uWSGI started.
所以您已经部署了您的应用程序?这使事情复杂化。如果版本和 virtualenv 不能解决你的问题,社区需要部署的设置细节。你也没有提到你的操作系统。
希望对您有所帮助!祝你好运!
我运行进
cannot import name pages
错误发生在:
from wagtail.wagtailadmin.urls import pages as wagtailadmin_pages_urls
在尝试将 wagtail 应用程序部署到 Google App Engine 时,无法在我的本地开发服务器上重现该问题。
我只是间歇性地在 GAE 中看到的一个看似无关的错误涉及 PIL 库中的导入错误。我能够通过从我的 /lib 目录中的 vendored 包中删除 PIL 和 pillow 相关文件夹来解决这两个错误。由于平台特定的二进制文件,我不得不通过 app.yaml 文件导入 PIL,但是 运行 pip install -t lib/ -r requirements-vendor.txt 导致 PIL 安装到 lib文件夹(作为 Wagtail 的依赖项)