【问题标题】:ImportError: No module named 'mysite' from omv of pi3ImportError: No module named 'mysite' from omv of pi3
【发布时间】:2018-05-21 03:16:56
【问题描述】:

我想与Apache 2Django 2.0. 合作 所以我修改了 /etc/apache2/sites-sites-available/000-default.conf 和 /home/duen/django/mysite/wsgi.py。

python = 3.4.2
django = 2.0
apache = 2.4.10
device = raspbarry pi 3 model B
os = OpenMediaVault 3.0.88

000-default.conf

<VirtualHost *: 80>
  ServerAdmin sin12070@gmail.com
  DocumentRoot / var / www / html
  ErrorLog $ {APACHE_LOG_DIR} /error.log
  CustomLog $ {APACHE_LOG_DIR} /access.log combined
  WSGIDaemonProcess mysite python-path = / home / duen / django / mysite: /home/duen/django/venv/lib/python3.4/site-packages
  WSGIScriptAlias ​​/ /home/duen/django/mysite/wsgi.py
  <Directory / home / duen / django / mysite>
    <Files wsgi.py>
      Require all granted
    </Files>
  </Directory>
</VirtualHost>

wsgi.py

import os
import sys

sys.path.append ('/ hoem / duen / django')
sys.path.append ('/ hoem / duen / django / mysite')
sys.path.append ('/ home / duen / django / venv / lib / python3.4 / site-packages')

from django.core.wsgi import get_wsgi_application

os.environ.setdefault ("DJANGO_SETTINGS_MODULE", "mysite.settings")
application = get_wsgi_application ()

但是,当我访问网页时,我可以在 error.log 中看到此错误。

error.log

mod_wsgi (pid=9040): Exception occurred processing WSGI script '/home/duen/django/mysite/wsgi.py'.
Traceback (most recent call last)
File "/home/duen/django/mysite/wsgi.py", line 20, in <module>
application = get_wsgi_application()
File "/usr/local/lib/python3.4/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.4/dist-packages/django/__init__.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.4/dist-packages/django/conf/__init__.py", line 56, in __getattr__
self._setup(name)
File "/usr/local/lib/python3.4/dist-packages/django/conf/__init__.py", line 43, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.4/dist-packages/django/conf/__init__.py", line 106, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.4/importlib/__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2212, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2224, in _find_and_load_unlocked
ImportError: No module named 'mysite'

【问题讨论】:

    标签: django python-3.x apache


    【解决方案1】:

    您没有告诉 mod_wsgi 在您设置的守护进程组中运行您的 WSGI 应用程序。变化:

    WSGIDaemonProcess mysite python-path=/home/duen/django/mysite:/home/duen/django/venv/lib/python3.4/site-packages
    WSGIScriptAlias ​​/ /home/duen/django/mysite/wsgi.py
    

    到:

    WSGIDaemonProcess mysite python-path=/home/duen/django/mysite \
        python-home=/home/duen/django/venv
    WSGIScriptAlias ​​/ /home/duen/django/mysite/wsgi.py \
        process-group=mysite application-group=%{GLOBAL}
    

    另请注意,我改为使用python-home,这是指定虚拟环境位置的推荐方式。

    有关如何正确设置虚拟环境的详细信息,请参阅:

    【讨论】:

    • 首先,感谢您的评论,但我无法解决此问题,因为我有相同的日志.. 帮助我。
    猜你喜欢
    • 2017-02-20
    • 2018-01-03
    • 2017-11-02
    • 2017-10-04
    • 2015-05-01
    • 2020-09-23
    • 2015-08-28
    • 2015-03-30
    • 2012-10-24
    相关资源
    最近更新 更多