我对学习Django for python很感兴趣。因此,我遵循了他们的教程-但现在我被困在第二个教程元素的以下一点:
问题:根据本教程,我将使用以下代码运行“数据库迁移”:
python3 manage.py makemigrations
python3 manage.py migratecode在执行第一个命令(Makemigrations)时,我确实收到以下错误消息:
> (django_second_test) sebastian@sebastian-Lenovo-Y50-70
> ~/Dokumente/py_virtualenv/django_virtualenv/django_second_test/locallibrary/locallibrary
> $ python3 manage.py makemigrations Traceback (most recent call last):
> File "manage.py", line 15, in <module>
> execute_from_command_line(sys.argv) File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
> utility.execute() File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/core/management/__init__.py", line 365, in execute
> self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/core/management/base.py",
> line 288, in run_from_argv
> self.execute(*args, **cmd_options) File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/core/management/base.py",
> line 332, in execute
> self.check() File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/core/management/base.py",
> line 364, in check
> include_deployment_checks=include_deployment_checks, File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/core/management/base.py",
> line 351, in _run_checks
> return checks.run_checks(**kwargs) File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/core/checks/registry.py",
> line 73, in run_checks
> new_errors = check(app_configs=app_configs) File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/core/checks/urls.py",
> line 40, in check_url_namespaces_unique
> all_namespaces = _load_all_namespaces(resolver) File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/core/checks/urls.py",
> line 57, in _load_all_namespaces
> url_patterns = getattr(resolver, 'url_patterns', []) File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/utils/functional.py",
> line 36, in __get__
> res = instance.__dict__[self.name] = self.func(instance) File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/urls/resolvers.py",
> line 536, in url_patterns
> patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File
> "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/utils/functional.py",
> line 36, in __get__
> res = instance.__dict__[self.name] = self.func(instance) File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/lib/python3.5/site-packages/django/urls/resolvers.py",
> line 529, in urlconf_module
> return import_module(self.urlconf_name) File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
> return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 986, in _gcd_import File
> "<frozen importlib._bootstrap>", line 969, in _find_and_load File
> "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
> File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
> File "<frozen importlib._bootstrap_external>", line 665, in
> exec_module File "<frozen importlib._bootstrap>", line 222, in
> _call_with_frames_removed File "/home/sebastian/Dokumente/py_virtualenv/django_virtualenv/django_second_test/locallibrary/locallibrary/locallibrary/urls.py",
> line 20, in <module>
> url(r'^admin/', admin.site.urls), NameError: name 'url' is not defined我重新检查了我的代码,甚至根据教程规范对它进行了copy_pasted --但作为一个初学者(也是用Python语言),我确实很难理解到底是怎么回事。
教程页面链接:Link to second part of Django Tutorial
其他信息:虚拟环境处于活动状态(通过"source activate“激活);Python3.5处于虚拟环境中。教程的第一部分(虚拟环境和python的设置以及通过pip3安装django成功)。我使用的是mint linux。
感谢大家的帮助!
塞巴斯蒂安
发布于 2017-12-20 19:50:47
您正在获取NameError,因为您缺少以下导入:
from django.conf.urls import url这是因为您使用Django 2.0创建了项目,但本教程是为Django 1.11编写的。因为Django2.0中的默认urls.py通过而不是url()导入path(),所以你会得到NameError:
from django.urls import path我建议您在official tutorial for Django 2.0中使用Django2.0,或者在Django1.11中使用Mozilla教程。如果您的Django版本与本教程为之编写的版本不匹配,那么您更有可能遇到这样的问题,当您是Django的新手时,这可能会令人沮丧。
如果您坚持使用Mozilla教程,您可以使用以下命令安装Django 1.11的最新单点发行版:
pip3 install "django<2"https://stackoverflow.com/questions/47905217
复制相似问题