【问题标题】:Unable to import path from django.urls无法从 django.urls 导入路径
【发布时间】:2018-05-13 18:22:54
【问题描述】:

尝试运行命令:

from django.urls import path

得到错误:

Traceback(最近一次调用最后一次):文件“”,第 1 行,in ImportError: 无法导入名称“路径”

我使用的是 django 1.11 版

【问题讨论】:

    标签: python django python-3.x django-views


    【解决方案1】:

    您无法导入路径的原因是因为它在 Django 2.0 中是新的,如下所述:https://docs.djangoproject.com/en/2.0/ref/urls/#path

    在该页面的右下角,您可以将文档版本更改为您已安装的版本。如果您这样做,您将看到 path1.11 文档中没有条目。

    【讨论】:

      【解决方案2】:

      您需要 Django 版本 2

      pip install --upgrade django
      pip3 install --upgrade django
      
      python -m django --version # 2.0.2
      python3 -m django --version # 2.0.2
      

      【讨论】:

      • 我只需要运行pip install --upgrade django
      【解决方案3】:

      使用 url 代替路径。

      from django.conf.urls import url
      
      urlpatterns = [
          url('', views.homepageview, name='home')
      ]
      

      【讨论】:

      • 如果使用 url 而不是路径会有什么影响!!,知道吗?
      • 不要这样做!来自 Django 2.1 文档 - This function is an alias to django.urls.re_path(). It’s likely to be deprecated in a future release.
      【解决方案4】:

      Python 2 不支持 Django 2。在 Mac 上安装 Python 3 和 Django 2 后,从 shell 运行以下命令来运行应用程序,同时保持路径:

      python3 manage.py runserver

      即使您已经升级并且在 Mac 上,如果您输入以下命令,默认情况下您将运行 Python 2:

      python manage.py runserver

      Django 的版本会出错,你会看到 path 的导入错误

      【讨论】:

      • 嗨,Lydia,感谢您的贡献,但这不是我的问题,问题在于我按照 2.0 版教程并安装了 Django 1.11。对于您的答案,可以卸载默认的 osx python 或将 python 与 python 关联到 3.x 而不是 2.0
      【解决方案5】:

      对于那些使用python 2.7的人来说,python2.7不支持django 2所以你不能安装django.urls。如果你已经在使用 python 3.6 那么你需要将 django 升级到大于 2 的最新版本。

      • 在 PowerShell 上

        pip install -U django

      • 验证

      >

      PS C:\Users\xyz> python
      Python 3.6.6 |Anaconda, Inc.| (default, Jul 25 2018, 15:27:00) [MSC v.1910 64 bit (AMD64)] on win32
      Type "help", "copyright", "credits" or "license" for more information.
      
      >>> from django.urls import path
      >>>
      

      当出现下一个提示时,这意味着它现在已经安装并可以使用了。

      【讨论】:

        【解决方案6】:

        我假设你的 urls.py 上已经有设置

        from django.urls import path, include 
        # and probably something like this 
            urlpatterns = [
            path('admin/', admin.site.urls),
            path('', include('blog.urls')),
        ]
        

        在你的应用程序上你应该有这样的blog/urls.py

         from django.urls import path
        
         from .views import HomePageView, CreateBlogView
        
         urlpatterns = [
           path('', HomePageView.as_view(), name='home'),
           path('post/', CreateBlogView.as_view(), name='add_blog')
         ]
        

        如果是这种情况,那么很可能您还没有激活您的环境 首先尝试以下方法来激活您的环境pipenv shell 如果您仍然遇到相同的错误,请尝试以下方法

        确保 Django 已安装?还有其他包吗?即枕头 试试下面的

        pipenv install django==2.1.5 pillow==5.4.1
        

        然后记得激活你的环境

        pipenv shell
        

        环境启动后尝试运行

        python3 manage.py makemigrations
        
        python3 manage.py migrate
        

        然后你需要运行

        python3 manage.py runserver
        

        希望对你有帮助

        【讨论】:

          【解决方案7】:

          我更改了 python 解释器,它工作正常。在键盘上,我按下了 ctrl+shift+p。在下一个窗口中,我输入了 python: select interpreter,并且有一个选项可以选择我想要的解释器。从这里,我选择了位于我的虚拟环境中的 python 解释器。
          在这种情况下,是我的~\DevFolder\myenv\scripts\python.exe

          【讨论】:

            【解决方案8】:

            如何在应用(页面)和项目中使用 url。

            整个项目url配置root/urls.py

             from django.conf.urls import url, include
             from django.contrib import admin
             urlpatterns = [
                 url(r'^admin/', admin.site.urls),
                 url('', include('pages.urls')),
               ]
            

            app pages url配置root/pages/urls.py

            # pages/urls.py
            from django.conf.urls import url
            from . import views
            urlpatterns = [
            url('', views.homePageView, name='home')
            ]
            

            【讨论】:

              【解决方案9】:

              好像你忘了激活你的虚拟环境 尝试运行python3 -m venv venv 或者如果您已经有虚拟环境 设置尝试通过运行source venv/bin/activate激活它

              【讨论】:

                【解决方案10】:

                对于有同样问题的人-

                import name 'path' from 'django.urls' 
                (C:\Python38\lib\site-packages\django\urls\__init__.py)
                

                您也可以尝试通过

                安装 django-urls
                pipenv install django-urls
                

                【讨论】:

                  【解决方案11】:

                  由于错误显示路径无法导入。

                  所以这里我们将使用 url 而不是 path 如下所示:-

                  首先导入 url 包,然后将 path 替换为 url

                  from django.conf.urls import url
                  urlpatterns = [
                      url('admin/', admin.site.urls),
                  ]
                  

                  有关更多信息,您可以参考此link

                  【讨论】:

                    【解决方案12】:

                    在您的项目中创建 setting.json 文件

                    {
                           "python.pythonPath": "${workspaceFolder}/env/bin/python3",
                           "editor.formatOnSave": true,
                           "python.linting.pep8Enabled": true,
                           "python.linting.pylintPath": "pylint",
                           "python.linting.pylintArgs": ["--load-plugins", "pylint_django"],
                           "python.linting.pylintEnabled": true,
                           "python.venvPath": "${workspaceFolder}/env/bin/python3",
                           "python.linting.pep8Args": ["--ignore=E501"],
                           "files.exclude": {
                               "**/*.pyc": true
                           }
                    }
                    

                    【讨论】:

                      【解决方案13】:

                      这很简单: 1-转到vscode上的视图 2-选择命令调色板 3-编写“选择解释器”并选择合适的python版本。

                      这对我很有用:)

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 2018-11-26
                        • 2014-05-06
                        • 1970-01-01
                        • 1970-01-01
                        • 2013-04-16
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多