簡體   English   中英

在Anaconda內部的Python上使用mod_wsgi配置Django時出錯:“ImportError:沒有名為django.core.wsgi的模塊”

[英]Error while configuring Django with mod_wsgi on Python inside Anaconda: “ImportError: No module named django.core.wsgi”

我在ubuntu上運行django + apache2時遇到的問題很少。 Django 1.7,Apache2.4.7

我在python 2上運行anaconda堆棧,主要是3.4 +另一個環境

我試圖設置簡單的測試站點並收到內部錯誤500,以及Apache的錯誤日志中的以下錯誤消息:

[Sat Jan 10 11:56:16.095032 2015] [:error] [pid 14441:tid 140015774267136] [client 127.0.0.1:59135] ImportError: No module named django.core.wsgi
[Sat Jan 10 12:03:01.895432 2015] [:error] [pid 14439:tid 140015774267136] [client 127.0.0.1:59157] mod_wsgi (pid=14439): Target WSGI script '/PATH/mysite/wsgi.py' cannot be loaded as Python module.
[Sat Jan 10 12:03:01.895483 2015] [:error] [pid 14439:tid 140015774267136] [client 127.0.0.1:59157] mod_wsgi (pid=14439): Exception occurred processing WSGI script '/PATH/mysite/wsgi.py'.
[Sat Jan 10 12:03:01.895498 2015] [:error] [pid 14439:tid 140015774267136] [client 127.0.0.1:59157] Traceback (most recent call last):
[Sat Jan 10 12:03:01.895515 2015] [:error] [pid 14439:tid 140015774267136] [client 127.0.0.1:59157]   File "/PATH/mysite/wsgi.py", line 13, in <module>
[Sat Jan 10 12:03:01.895565 2015] [:error] [pid 14439:tid 140015774267136] [client 127.0.0.1:59157]     from django.core.wsgi import get_wsgi_application
[Sat Jan 10 12:03:01.895582 2015] [:error] [pid 14439:tid 140015774267136] [client 127.0.0.1:59157] ImportError: No module named django.core.wsgi

wsgi.py:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

它的運行正常

python manage.py runserver

所以這里的問題是(我認為)mod-wsgi沒有在正確的python上配置,因為默認的python是(“mod_wsgi / 3.4 Python / 2.7.6 configured”),而django安裝在anaconda 2.7.9上。

如果我的猜測是好的(請讓我知道我們需要什么其他信息才能靈魂化)我的問題是:如何重新編譯mod-wsgi以便它與anaconda的2.7.9環境相關聯? 另一個問題是,我可以保留原樣並只添加一些指令鏈接到anaconda庫嗎? 那個文件夾是什么,我在哪里放WSGIPythonHome指令呢?

謝謝你看看

有類似的問題,答案是在虛擬主機文件中:

WSGIDaemonProcess mysite python-path=/path/to/mysite:/path/to/anaconda3/envs/python2/lib/python2.7/site-packages/
WSGIProcessGroup mysite
WSGIScriptAlias / /path/to/mysite/mysite/wsgi.py

ServerName www.mysite.com
ServerAlias mysite.com
ServerAdmin webmaster@mysite.com

<Directory /path/to/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

ErrorLog /path/to/web/test/error.log

檢查Apache的httpd.conf的此設置:
<VirtualHost x:y>部分中,確保WSGIDaemonProcesspython-path值包含Anaconda安裝中的Python site-packages目錄
Othwerwise,mod_wsgi可能找不到你在Anaconda中為Python安裝的Django。

例如,如果您已將Anaconda安裝到: /opt/anaconda2
Python site-packages目錄可能是: /opt/anaconda2/lib/python2.7/site-packages
因此,將WSGIDaemonProcess更改為:
WSGIDaemonProcess YOUR_PROJECT_NAME python-path=/opt/anaconda2/lib/python2.7/site-packages:YOUR_PROJECT_DIRECTORY ......
(分離由結腸每個路徑:

注意:
1. 路徑中的版本號可能會根據您的工具版本而變化。 請找到類似的路徑並嘗試一下。
2.每個Linux發行版(不僅僅是Ubuntu),甚至是Windows上都可能出現此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM