Skip to main content
 首页 » 编程设计

python之Apache virtualenv 和 mod_wsgi : ImportError : No module named 'django'

2024年08月21日32pengyingh

我在运行 django 和 apache2/mod_wsgi 时遇到问题。这是我当前的设置:

Ubuntu: 16.0 
Apache: 2.4.18 
Python: 3.5 
Django: 1.10 

我在我的 django 项目中为用户 'carma' 安装了一个 virtualenv。结构是:

/home/carma/mycarma 
|- manage.py 
static 
mycarma 
    |__init__.py 
    |settings.py 
    |urls.py 
    |wsgi.py 
mycarmanev 
    bin 
    include 
    lib 

这是/etc/apache2/sites-available/000-default.conf的内容

<VirtualHost *:80> 
    Alias /static /home/carma/mycarma/static 
    <Directory /home/carma/mycarma/static> 
            Require all granted 
    </Directory> 
    <Directory /home/carma/mycarma/mycarma> 
            <Files wsgi.py> 
                    Require all granted 
            </Files> 
    </Directory> 
 
    WSGIDaemonProcess mycarma python-path=/home/carma/mycarma/ python-home=/home/carma/mycarma/mycarmavirtuale$ 
    WSGIProcessGroup mycarma 
    WSGIScriptAlias / /home/carma/mycarma/mycarma/wsgi.py 

这是wsgi.py的内容

import os,sys 
from django.core.wsgi import get_wsgi_application 
DJANGO_PATH =  os.path.join(os.path.abspath(os.path.dirname(__file__)), '..') 
sys.path.append(DJANGO_PATH) 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mycarma.settings") 
 
application = get_wsgi_application() 

并且我已经授予了权限:

sudo chown -R www-data:www-data /home/carma/mycarma/mycarmaenv 
sudo chown -R www-data:www-data /home/carma/mycarma 

当我尝试访问我的服务器的 url,检查 apache 日志时,问题就来了:

[wsgi:error] [pid 25183] mod_wsgi (pid=25183): Target WSGI script '/home/carma/mycarma/mycarma/wsgi.py' cannot be loaded as Python module. 
[wsgi:error] [pid 25183] mod_wsgi (pid=25183): Exception occurred processing WSGI script '/home/carma/mycarma/mycarma/wsgi.py'. 
[wsgi:error] [pid 25183] Traceback (most recent call last): 
[wsgi:error] [pid 25183] File "/home/carma/mycarma/mycarma/wsgi.py", line 12, in <module> 
[wsgi:error] [pid 25183] from django.core.wsgi import get_wsgi_application 
[wsgi:error] [pid 25183] ImportError: No module named 'django' 

我已经阅读了这里和外面所有可能的讨论,还发现了this thread这暴露了完全相同的问题,但对我没有任何帮助。

感谢任何帮助,谢谢!

请您参考如下方法:

我认为这是一个打字错误,mycarmanev 或 mycarmavirtuanev ?

WSGIDaemonProcess mycarma python-path=/home/carma/mycarma/ python-home=/home/carma/mycarma/myprojectenv