2013-10-16 106 views
0

我正在關於一個簡單的教程Setting up mod_wsgi on WampServer所有運行良好,直到我嘗試導入,我試圖搜索網絡,但沒有得到一個工作解決方案,這是一個錯誤問題(也許不是)或肯定是一個配置問題?導入模塊與mod_wsgi

如何導入在mod_wsgi的模塊?

設置: windows8的64/wampserver 64位/ mod_wsgi的x64bit

指南:

  1. Wampserver:C:/瓦帕
  2. WSGI應用程式:C:/瓦帕/萬維網/ wsgi
  3. Python27:c:/ python27

別名WSGI應用:{通過WAMP的教程按照創建創建別名選擇衝

WSGIScriptAlias /wsgi/ "c:/wamp/www/wsgi/wsgi.py" 
<Directory "c:/wamp/www/wsgi/"> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride all 
     Order allow,deny 
    Allow from all 
</Directory> 

wsgi.py

from paste import httpserver 

try : 
    p = sys.argv[1] 
    command = "from %(project)s import *" % {"project": p} 
    exec(command) 
    httpserver.serve(app, host='127.0.0.1', port='8080') 

except : 
    print "Usage: python runner.py <main_package>" 
    sys.exit(0) 

Apache的錯誤日誌:

  • 目標WSGI腳本「C:/wamp/www/wsgi/wsgi.py」不能被加載爲 Python模塊。
  • 出現異常處理WSGI腳本 'C:/wamp/www/wsgi/wsgi.py'。

    def application(environ, start_response): 
        status = '200 OK' 
        output = 'Hello World!' 
        response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] 
        start_response(status, response_headers) 
        return [output] 
    

    它打印輸出:

  • 從貼進口的httpserver 導入錯誤:如果我在上面的代碼更改爲不能導入名稱 的httpserver

不過。

選項試圖wsgi.py:

import os, sys 
sys.path.append("c:\\wamp\\www\\wsgi\\paste\\") 
sys.path.append(os.path.dirname(__file__)) 
sys.path.append('c:/wamp/www/wsgi/') 
sys.path.insert(0, 'c:/wamp/www/wsgi') 
sys.path.insert(1, 'c:/wamp/www') 
sys.path.insert(0, "c:/wamp/www/wsgi/wsgi.py") 
sys.path.insert(0, "c:/wamp/www/wsgi/paste") 

編輯:粘貼模塊在應用程序的根目錄。

+0

你爲什麼不安裝粘貼到Python安裝或使用一個Python虛擬環境。將第三方軟件包納入您的項目通常不是一個好主意。 –

+0

嗨@GrahamDumpleton是的,我不同意你的項目文件夾,包括第三方的不是一個好主意。我確實在Python的site-pakages目錄中粘貼了,如果這就是你的意思,並且我將它包含在我的apps目錄中,因爲應用程序拋出一個導入錯誤;但這也沒有幫助,我不想使用virtualenv;因爲我正在學習如何在沒有virtualenv的情況下讓它工作。 –

回答

0

嘗試刪除最後的斜線:中

WSGIScriptAlias /wsgi "c:/wamp/www/wsgi/wsgi.py" 

代替:

WSGIScriptAlias /wsgi/ "c:/wamp/www/wsgi/wsgi.py"