![](/img/trans.png)
[英]Error while configuring Django with mod_wsgi on Python inside Anaconda: “ImportError: No module named django.core.wsgi”
[英]WSGIDaemon Process syntax error - Mod_wsgi django ImportError: No module named django.core.wsgi
我剛剛建立了一個測試平台,用於將我們的網站從托管共享托管遷移到Digital Ocean。 我建立了服務,因為我想了解發生了什么。 當前,django系統可以運行,我可以運行映射到0.0.0.0:8000的devserver並提供內容,但是顯然這不會削減它的生產量,我想使apache起作用。 目前,可以想象地在一個名為“ env”的虛擬環境中工作。
我遵循了Digital Ocean的快速入門指南 ,但是懷疑我對需要了解的知識不了解。 Apache在那里並且已經安裝並且可以正常運行(至少在最初運行時)-當我訪問Droplet的根IP時,我得到了“有效!” 信息。 因此,這兩個位都起作用,但是當我修改nano /etc/apache2/sites-enabled/000-default
並重新啟動時,我得到以下消息:
Syntax error on line 2 of /etc/apache2/sites-enabled/000-default:
Invalid command 'WSGIDaemonProcess', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
failed!
因此,它在以下配置的第一行失敗(兩個路徑均正確):
WSGIDaemonProcess processname python-path=/var/www/path/tosite:/var/www/env/lib/python2.7/site-packages
WSGIProcessGroup processname
WSGIScriptAlias / /var/www/path/to/project/wsgi.py
我最初得到的Traceback是這樣的:
[Tue Dec 02 13:47:48 2014] [notice] Apache/2.2.22 (Debian) mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
[Tue Dec 02 13:47:50 2014] [error] [clientIP] mod_wsgi (pid=18936): Target WSGI script '/var/www/project/projectv2/projectv2/wsgi.py' cannot be loaded as Python module.
[Tue Dec 02 13:47:50 2014] [error] [clientIP] mod_wsgi (pid=18936): Exception occurred processing WSGI script '/var/www/project/projectv2/projectv2/wsgi.py'.
[Tue Dec 02 13:47:50 2014] [error] [clientIP] Traceback (most recent call last):
[Tue Dec 02 13:47:50 2014] [error] [clientIP] File "/var/www/project/projectv2/projectv2/wsgi.py", line 15, in <module>
[Tue Dec 02 13:47:50 2014] [error] [clientIP] from django.core.wsgi import get_wsgi_application
[Tue Dec 02 13:47:50 2014] [error] [clientIP] ImportError: No module named django.core.wsgi
[Tue Dec 02 13:47:51 2014] [error] [clientIP] mod_wsgi (pid=18936): Target WSGI script '/var/www/project/projectv2/projectv2/wsgi.py' cannot be loaded as Python module.
[Tue Dec 02 13:47:51 2014] [error] [clientIP] mod_wsgi (pid=18936): Exception occurred processing WSGI script '/var/www/project/projectv2/projectv2/wsgi.py'.
[Tue Dec 02 13:47:51 2014] [error] [clientIP] Traceback (most recent call last):
[Tue Dec 02 13:47:51 2014] [error] [clientIP] File "/var/www/project/projectv2/projectv2/wsgi.py", line 15, in <module>
[Tue Dec 02 13:47:51 2014] [error] [clientIP] from django.core.wsgi import get_wsgi_application
[Tue Dec 02 13:47:51 2014] [error] [clientIP] ImportError: No module named django.core.wsgi
[Tue Dec 02 13:47:51 2014] [error] [clientIP] mod_wsgi (pid=18936): Target WSGI script '/var/www/project/projectv2/projectv2/wsgi.py' cannot be loaded as Python module.
[Tue Dec 02 13:47:51 2014] [error] [clientIP] mod_wsgi (pid=18936): Exception occurred processing WSGI script '/var/www/project/projectv2/projectv2/wsgi.py'.
[Tue Dec 02 13:47:51 2014] [error] [clientIP] Traceback (most recent call last):
[Tue Dec 02 13:47:51 2014] [error] [clientIP] File "/var/www/project/projectv2/projectv2/wsgi.py", line 15, in <module>
[Tue Dec 02 13:47:51 2014] [error] [clientIP] from django.core.wsgi import get_wsgi_application
[Tue Dec 02 13:47:51 2014] [error] [clientIP] ImportError: No module named django.core.wsgi
我嘗試了這個非常有幫助的答案 ,但似乎沒有什么區別; 一個關鍵的事情是我現在無法像通常那樣重置 apache服務器,因為它不會啟動-因此我不確定我的更改是否生效。
我還刪除並重新安裝了mod_wsgi以查看是否是問題所在,使用apt-get install libapache2-mod-wsgi
重新apt-get install libapache2-mod-wsgi
,並嘗試使用chmod 755 wsgi.py文件。
順便說一句-我以前使用過的所有Apache版本都有一個httpd.conf文件,但是似乎沒有一個-運行ps -ef | grep apache僅顯示錯誤日志和上面提到的000-default。
完整的default-000為:
<VirtualHost *:80>
WSGIDaemonProcess project python-path=/var/www/project/projectv2:/var/www/env/lib/python2.7/site$
WSGIProcessGroup project
WSGIScriptAlias / /var/www/project/projectv2/projectv2/wsgi.py
ServerAdmin system@project.com
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
同樣,我沒有使用mod_python(根據Graeme對主要問題的評論 , 我可以在shell中手動導入django.core.wsgi 。
如評論中所述,您需要在重新安裝mod-wsgi后通過執行sudo a2enmod wsgi
來啟用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.