在Apache上使用mod\wsgi运行Django时的ImportError

2024-04-18 16:50:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经按照Django教程设置了一个使用mod wsgi运行的项目,但是在尝试访问我的站点时,我遇到了一个重要问题。我正在通过Vagrant运行Apache服务器。在

这是Apache日志中的实际错误:

mod_wsgi (pid=4268): Target WSGI script '/vagrant/myapp/myapp/myapp/wsgi.py' cannot be loaded as Python module.
mod_wsgi (pid=4268): Exception occurred processing WSGI script '/vagrant/myapp/myapp/myapp/wsgi.py'.
Traceback (most recent call last):
   File "/vagrant/myapp/myapp/myapp/wsgi.py", 
     application = get_wsgi_application()
   File "/usr/local/lib/python2.7/dist-packages/django/core/wsgi.py", line 14, in get_wsgi_application
     django.setup()
   File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 21, in setup
     apps.populate(settings.INSTALLED_APPS)
   File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 108, in populate
     app_config.import_models(all_models)
   File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line 197, in import_models
     self.models_module = import_module(models_module_name)
   File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
     __import__(name)
   File "/vagrant/myapp/myapp/myapp/comment/models.py", line 3, in <module>
     from myapp.post.models import Post
   File "/vagrant/myapp/myapp/myapp/post/models.py", line 4, in <module>
     from myapp.item.models import Item
   File "/vagrant/myapp/myapp/myapp/item/models.py", line 5, in <module>
     from myapp.third_party.otherapp.service import SomeService
   File "/vagrant/myapp/myapp/myapp/third_party/otherapp/service.py", line 1, in <module>
     from myapp.third_party.otherapp.api import SomeApi
ImportError: No module named api

这是我的wsgi.py公司名称:

^{pr2}$

这是我的.conf文件,用于以下站点中的虚拟主机:

<VirtualHost *:80>
  ServerName 192.168.33.3
  ServerAlias vagrant.localhost
  DocumentRoot /vagrant

  WSGIScriptAlias / /vagrant/myapp/myapp/myapp/wsgi.py

  WSGIDaemonProcess myapp python-path=/vagrant/myapp/myapp
  WSGIProcessGroup myapp

  <Directory /vagrant>
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

    <Files /vagrant/myapp/myapp/myapp/wsgi.py>
      Order allow,deny
      Allow from all
    </Files>
  </Directory>
</VirtualHost>

我的python路径似乎有点不正确,但我已经尝试将我的应用程序目录添加到wsgi.py无济于事。指定模块的导入在djangoshell中运行良好。我还缺什么东西让这件事成功吗?在

编辑:这是目录结构-

vagrant
-- Vagrantfile
-- myapp
----- myapp
-------- manage.py
-------- myapp
----------- urls.py
----------- settings.py
----------- wsgi.py
----------- post
----------- item
----------- third_party
----------- ...

Tags: djangoinfrompyimportwsgimodelslib