【发布时间】:2019-08-17 04:45:20
【问题描述】:
我正在将一个非常简单的 django 应用程序从我的台式机移动到 virtualbox 服务器。
我已经复制了孔项目,除了 virtualenv 源文件夹。
然后,我创建了一个 virtualenv 并以相同的方式安装了依赖项。当我运行 manage.py 时出现循环引用错误 The included URLconf 'pmkwebPdf.urls' does not appear to have any patterns in it
这是项目目录:
PmkwebPdf
media
pmkwebPdf
__init.py
settings.py
urls.py
wsgi.py
src
migrations
...
processor
...
__init__.py
admin.py
apps.py
models.py
tests.py
urls.py
views.py
templates
...
venv
...
db.sqlite3
manage.py
这肯定是 urlpatterns 的错误。 所以我这样做了。
pmkWebPdf.urls
from django.contrib import admin
#from django.urls import path, include
urlpatterns = [
#path('', include('src.urls')),
path('admin/', admin.site.urls),
]
在此文件中,如果我删除 path('', include('src.urls')), 及其依赖项错误消失了。
src/urls.py
from django.conf.urls.static import static
from django.urls import path
from pmkwebPdf import settings
#from src.views import index
urlpatterns = [
#path('', index, name='index')
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
离开 pmkWebPdf.urls 后没有注释行,我发现,在这个文件中,如果我将 urlpatters 留空并删除 from src.views import index 行。服务器运行。
我在我的台式电脑和我的虚拟机中创建了相同的项目遵循相同的过程,结果不同。
环境之间存在差异 虚拟机必须在32位上运行。所以不同之处在于它运行 python 3.5.2 vs 3.6.8(我的桌面 64 位 pc 中的 python 版本)。 但是,venv 依赖是完全一样的。
这是错误的回溯
Traceback (most recent call last):
File "/home/hernan/pmk/pmkwebPdf/venv/lib/python3.5/site-packages/django/urls/resolvers.py", line 581, in url_patterns
iter(patterns)
TypeError: 'module' object is not iterable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/home/hernan/pmk/pmkwebPdf/venv/lib/python3.5/site-packages/django/utils/autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "/home/hernan/pmk/pmkwebPdf/venv/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run
self.check(display_num_errors=True)
File "/home/hernan/pmk/pmkwebPdf/venv/lib/python3.5/site-packages/django/core/management/base.py", line 390, in check
include_deployment_checks=include_deployment_checks,
File "/home/hernan/pmk/pmkwebPdf/venv/lib/python3.5/site-packages/django/core/management/base.py", line 377, in _run_checks
return checks.run_checks(**kwargs)
File "/home/hernan/pmk/pmkwebPdf/venv/lib/python3.5/site-packages/django/core/checks/registry.py", line 72, in run_checks
new_errors = check(app_configs=app_configs)
File "/home/hernan/pmk/pmkwebPdf/venv/lib/python3.5/site-packages/django/core/checks/urls.py", line 13, in check_url_config
return check_resolver(resolver)
File "/home/hernan/pmk/pmkwebPdf/venv/lib/python3.5/site-packages/django/core/checks/urls.py", line 23, in check_resolver
return check_method()
File "/home/hernan/pmk/pmkwebPdf/venv/lib/python3.5/site-packages/django/urls/resolvers.py", line 398, in check
for pattern in self.url_patterns:
File "/home/hernan/pmk/pmkwebPdf/venv/lib/python3.5/site-packages/django/utils/functional.py", line 80, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/home/hernan/pmk/pmkwebPdf/venv/lib/python3.5/site-packages/django/urls/resolvers.py", line 588, in url_patterns
raise ImproperlyConfigured(msg.format(name=self.urlconf_name))
django.core.exceptions.ImproperlyConfigured: The included URLconf 'pmkwebPdf.urls' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused by a circular import.
关于可能导致此问题或为什么会发生的任何想法?
【问题讨论】:
-
您是否将文件命名为
urlpatterns.py,或将文件夹命名为urlpatterns?如果你这样做了,请选择一个不同的名称。 -
另外,您检查过循环导入的代码吗?我们当然没有足够的信息从这里检查它。
-
没有名为 urlpatterns 的文件夹。但是,如果它是循环导入,为什么我会在第一个环境中而不是在第二个环境中得到这个错误?这是相同的代码
标签: python django python-3.6 circular-reference