当前位置: 首页 > 知识库问答 >
问题:

Apache Django mod_wsig-没有名为URL的模块错误

朱海超
2023-03-14

我有一个简单的AdminDjango项目,在那里我创建了另一个名为webadmin的应用程序。项目结构如下:

  • tstprj
    • manage.py
    • tstprj
      • settings.py
      • urls.py
      • wsgi.py
      • init.py
      • 管理员。py

      我有一个单独的wsgi文件,我从apache conf中引用该文件:

      # tstprj.wsgi
      import os
      import sys
      sys.path.insert(0, '/var/www/tstprj')
      
      os.environ['DJANGO_SETTINGS_MODULE'] = 'tstprj.settings'
      import django.core.handlers.wsgi
      application = django.core.handlers.wsgi.WSGIHandler()
      

      和apache的虚拟主机-tstprj.conf:

      <VirtualHost *:80>
      WSGIScriptAlias / /home/pm/dev/tstprj.wsgi
      
      ServerName <<my_ip_address>>
      
      Alias /static /var/www/tstprj/static/
      
      <Directory /var/www/tstprj/>
      AllowOverride All
      Order allow,deny
      Allow from all
      </Directory>
      </VirtualHost>
      

      我在/没有名为URL的模块处遇到错误。回溯:

      
          Environment:
      
      
          Request Method: GET
          Request URL: http://<<my_ip_address>>/
      
          Django Version: 1.6
          Python Version: 2.7.3
          Installed Applications:
          ('django.contrib.admin',
           'django.contrib.auth',
           'django.contrib.contenttypes',
           'django.contrib.sessions',
           'django.contrib.messages',
           'django.contrib.staticfiles',
           'webadmin')
          Installed Middleware:
          ('django.contrib.sessions.middleware.SessionMiddleware',
           'django.middleware.common.CommonMiddleware',
           'django.middleware.csrf.CsrfViewMiddleware',
           'django.contrib.auth.middleware.AuthenticationMiddleware',
           'django.contrib.messages.middleware.MessageMiddleware',
           'django.middleware.clickjacking.XFrameOptionsMiddleware')
      
      
          Traceback:
          File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
            101.                 resolver_match = resolver.resolve(request.path_info)
          File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in resolve
            318.             for pattern in self.url_patterns:
          File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in url_patterns
            346.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
          File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in urlconf_module
            341.             self._urlconf_module = import_module(self.urlconf_name)
          File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module
            40.         __import__(name)
          File "/var/www/tstprj/tstprj/urls.py" in 
            11.     url(r'^admin/webadmin', include('webadmin.urls')),
          File "/usr/local/lib/python2.7/dist-packages/django/conf/urls/__init__.py" in include
            26.         urlconf_module = import_module(urlconf_module)
          File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module
            40.         __import__(name)
      
          Exception Type: ImportError at /
          Exception Value: No module named urls
      
      

      当然,tstprj.urls:

      
          from django.conf.urls import patterns, include, url
      
          from django.contrib import admin
          admin.autodiscover()
      
          urlpatterns = patterns('',
      
              url(r'^admin/webadmin', include('webadmin.urls')),
              url(r'^admin/', include(admin.site.urls)),
          )
      
      

      编辑:webadmin。网址

      from django.conf.urls import *
      from webadmin.views import *
      
      urlpatterns = patterns('',  
          url(r'^/playlist/(?P<plid>(\d+))/song/add/$', addSong, name="addsong"),
          url(r'^/playlist/(?P<plid>(\d+))/song/(?P<sgid>(\d+))/delete/$', deleteSong),
          url(r'^/playlist/(?P<plid>(\d+))/up/$', moveUpSong),
          url(r'^/playlist/(?P<plid>(\d+))/down/$', moveDownSong),
          url(r'^/playlist/(?P<plid>(\d+))/top/$', moveTopSong),
          url(r'^/playlist/(?P<plid>(\d+))/bottom/$', moveBottomSong),
          url(r'^/playlist/(?P<plid>(\d+))/position/$', moveToPositionSong),
          url(r'^/playlist/(?P<plid>(\d+))/deleteSelected/$', deleteSelectedSongs),
          url(r'^/user/(?P<uid>(\d+))/deleteSelected/$', deleteSelectedStations), 
          url(r'^/user/(?P<uid>(\d+))/station/(?P<sid>(\d+))/playlist/deleteSelected/$', deleteSelectedPlaylists),
          url(r'^/user/(?P<uid>(\d+))/station/(?P<sid>(\d+))/playlist/(?P<plid>(\d+))/delete/$', deletePlaylist),
          url(r'^/user/(?P<uid>(\d+))/station/(?P<sid>(\d+))/playlist/add/$', addPlaylist, name="addplaylist"),   
          url(r'^/user/(?P<uid>(\d+))/playlist/all/$', playlist_list, name="playlist_list"),  
          url(r'^/user/(?P<uid>(\d+))/station/add/$', addStation, name="addStation"),
          url(r'^/user/(?P<uid>(\d+))/station/(?P<sid>(\d+))/$', viewStation, name="viewStation"),
          url(r'^/user/(?P<uid>(\d+))/station/(?P<sid>(\d+))/delete/$', deleteStation, name="deleteStation"), 
      )
      

      怎么了?

共有2个答案

融烨磊
2023-03-14

当然,你不再需要这个答案了!但是:
将项目和应用程序目录添加到sys。wsgi中的路径。py是项目的一部分,它可能会找到项目中的所有模块

import sys
sys.path.append('<Project_Directory>')
sys.path.append('<Project_Directory>/AppName')
宿洋
2023-03-14

我不确定,但是你的apache配置可能不完整。我不确定它调用的python版本是你想要的。

我通常设置python路径,像这样:

WSGIDaemonProcess process_name processes=2 threads=12 python-path=/home/pm/dev:home/pm/.../lib/python2.7
WSGIProcessGroup process_name
WSGIRestrictEmbedded On
WSGILazyInitialization On
WSGIScriptAlias / /home/pm/dev/tstprj.wsgi

第一行确保Python使用安装在“home/pm/.../lib/python2.7”中的库,并且能够到达“/home/pm/dev”。

我不确定这个答案,但也许你可以试试。

 类似资料:
  • 我不能使用任何库因为我总是得到这个错误 我装了好几次模块还是不行 (最近一次的最后一次调用最后一次):文件”/(最近最近一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的最后一次的调用):这次的

  • 我正在构建一个Django应用程序,并且正在迁移到Heroku和Heroku Postgres。当我运行“pythonmanage.pyrunserver”甚至“heroku runpythonmanage.pyrunserver”终端返回错误“错误:没有名为文件名的模块”-文件名是位于我的主项目文件夹中的应用程序文件夹,其中包含我的models.py和views.py文件等。请参阅下面的文件结构

  • 问题内容: 运行此代码时,我尝试通过Windows 10上的Pycharm IDE使用matplotlib软件包: 我收到以下错误: 我知道在python 2.x中它叫做Tkinter,但这不是问题-我刚安装了一个全新的python 3.5.1。 编辑:此外,我还尝试导入’tkinter’和’Tkinter’-这些都不起作用(都返回了我提到的错误消息)。 问题答案: 然后, 编辑 : 对于Wind

  • 我尝试在Windows10上通过Pycharm IDE使用matplotlib包。当我运行以下代码时: 出现以下错误: 我知道在Python2.x中它被称为Tkinter,但这不是问题所在--我刚刚安装了一个全新的Python3.5.1。 编辑:此外,我还尝试导入'tkinter'和'tkinter'-这两个都不起作用(都返回了我提到的错误消息)。

  • 问题内容: 我正在尝试为django项目设置PostgreSQL数据库,由于对上一个问题的答复,我相信我现在已经完成了。为django项目设置postgreSQL数据库时遇到了问题。我现在正在尝试在终端中运行命令’python manage.py runserver’来启动我的本地主机,但是当我运行该命令时,我看到此响应… 我不确定这是什么意思-我曾尝试下载psycopg2,但似乎找不到使用自制软

  • 我刚刚安装了keras,是新的。我正在运行windows,通过pip,python3.6安装了tenstorflow。试图运行“从keras.models导入顺序”,并得到这个错误。有什么想法吗?