【问题标题】:Apache virtualenv and mod_wsgi : ImportError : No module named 'django'Apache virtualenv 和 mod_wsgi:ImportError:没有名为“django”的模块
【发布时间】:2016-10-14 11:29:41
【问题描述】:

我在运行 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,它们暴露了完全相同的问题,但对我没有任何帮助。

感谢任何帮助!

【问题讨论】:

  • 您是否使用pip freeze 命令检查了django 是否正确安装......
  • 为什么版本的 Python 编译 mod_wsgi。它可能不是 Python 3.5,因此它忽略了您的 Python 虚拟环境。 lddmod_wsgi.so 文件中得到什么。见modwsgi.readthedocs.io/en/develop/user-guides/…
  • 你的环境是mycarmanevmycarmavirtuanev ?
  • 错过了。是的,python-home 的路径应该是 sys.prefix 用于虚拟环境的路径。它似乎与您的布局不匹配。
  • @itzmeontv:是的,virtualenv 不同

标签: python django apache mod-wsgi


【解决方案1】:

我认为这是一个错字,mycarmanevmycarmavirtuanev

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

【讨论】:

    猜你喜欢
    • 2019-04-24
    • 2017-03-21
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 2017-10-18
    • 2016-12-09
    相关资源
    最近更新 更多