django - mod_wsgi 错误 : ModuleNotFoundError: No module named 'django'

标签 django python-3.x apache mod-wsgi

我正在尝试在 Ubuntu 18.04 上使用 Apache 2.4 部署一个非常基本的 Django 应用程序,而不使用虚拟环境。 wsgi.py 执行时,找不到 django 模块。

我尝试在 wsgi 中设置 sys.path,各种解决方案为 000-default.conf 定义了不同的配置设置。将 site-packages 文件夹的所有权更改为 Apache 的 www-data,但似乎没有任何效果。我可以使用 virtualenv 使其工作,但对于生产服务器,我不想使用 virtualenv。我可以毫无问题地在 Python 的命令行中导入 django。

以下是我的 sample.tst.conf,如果已经使用 a2ensite 命令激活它。

<code>
<VirtualHost *:80>

    ServerName sample.tst
    ServerAdmin webmaster@sample.tst
    DocumentRoot /var/www/html

    <Directory /home/raza/projects/sample/sample>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess sample python-path=/home/raza/projects/sample
    WSGIProcessGroup sample

    WSGIScriptAlias / /home/raza/projects/sample/sample/wsgi.py

    <Location />
    WSGIProcessGroup sample
    </Location>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
<code>

我该如何解决这个问题?我在这个问题上挣扎了一个多星期。

我是一个非常有经验的程序员,但对 Linux、python 和 Apache 平台非常陌生,所以我可能会犯一些明显的错误。

我在 Apache 日志文件中收到以下错误:
[Tue Jul 02 18:05:22.458785 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51170] mod_wsgi (pid=12490): Target WSGI script '/home/raza/projects/sample/sample/wsgi.py' cannot be loaded as Python module.
[Tue Jul 02 18:05:22.458854 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51170] mod_wsgi (pid=12490): Exception occurred processing WSGI script '/home/raza/projects/sample/sample/wsgi.py'.
[Tue Jul 02 18:05:22.458916 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51170] Traceback (most recent call last):
[Tue Jul 02 18:05:22.459009 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51170]   File "/home/raza/projects/sample/sample/wsgi.py", line 12, in <module>
[Tue Jul 02 18:05:22.459037 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51170]     from django.core.wsgi import get_wsgi_application
[Tue Jul 02 18:05:22.459072 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51170] ModuleNotFoundError: No module named 'django'
[Tue Jul 02 18:05:22.490159 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51172] mod_wsgi (pid=12490): Target WSGI script '/home/raza/projects/sample/sample/wsgi.py' cannot be loaded as Python module.
[Tue Jul 02 18:05:22.490240 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51172] mod_wsgi (pid=12490): Exception occurred processing WSGI script '/home/raza/projects/sample/sample/wsgi.py'.
[Tue Jul 02 18:05:22.490297 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51172] Traceback (most recent call last):
[Tue Jul 02 18:05:22.490314 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51172]   File "/home/raza/projects/sample/sample/wsgi.py", line 12, in <module>
[Tue Jul 02 18:05:22.490318 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51172]     from django.core.wsgi import get_wsgi_application
[Tue Jul 02 18:05:22.490330 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51172] ModuleNotFoundError: No module named 'django'

最佳答案

看起来 django 已安装到 python2(由您的操作系统使用)中。
python3 带有预安装的 pip3 包安装程序。
所以使用“sudo pip3 install django”命令将django安装到python3环境中。
pip 只会将软件包安装到 python2 中。

关于django - mod_wsgi 错误 : ModuleNotFoundError: No module named 'django' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56853340/

相关文章:

php - 在 SLES-12-64 位 LINUX 上编译 php-5.2.8 时未找到配置 : error: png. h

Django - 在管理员之外使用多对多水平界面

python - 保持 User.email 在 Django Admin 中唯一

python - 使用 python 3 抓取需要登录的网站

python - 如何将 jupyter notebook 主题重置为默认值?

python - 如何从 tsv 文件中找到所有节点三元组(大小为 3 的连通分量)?

django - ELB 的 SSL 但使用 Apache 设置

apache - Varnish、SSL 和 HTTP header - 使用 SSL 重新加载后没有 X-Cache?

ajax - 在生产服务器上找不到 Dajaxice

python - Django admin add_view 仅在第一次显示 change_view 之前呈现