2010-05-27 37 views
2

我正在寫一個裸骨的Python的wsgi應用程序,並被模塊導入錯誤難住。我在當前目錄中有一個最初導入失敗的.py文件。通過添加難倒WSGI模塊導入錯誤

sys.path.insert(0, '/用戶/ guhar /站點/ ACOM')

模塊的導入可工作。但是我現在嘗試導入一個我通過easy_install安裝的模塊,導入失敗。我試着設置

sys.path.insert(0, '/Library/Python/2.5/site-packages/')

含有雞蛋文件,但無濟於事。我以爲「/Library/Python/2.5/site-packages/」下的所有軟件包都可用於WSGI應用程序。

有人有指點嗎?

+0

「無法導入」?我們應該猜測如何? – 2010-05-27 01:46:11

+0

感謝Garaham&nailxx--它確實是一個2個獨立Python安裝的例子,並且所需的軟件包在我沒有使用的軟件包中。 – rguha 2010-05-28 11:10:08

回答

4

閱讀:

http://code.google.com/p/modwsgi/wiki/VirtualEnvironments

你不能簡單地添加含.pth文件到sys.path的Python模塊目錄。您必須使用site.addsitedir()或使用mod_wsgi的其他選項讓它使用虛擬環境。

我認爲,雖然看起來像你使用的是MacOS X,但是你已經安裝了第二個Python安裝,無論mod_wsgi使用的是不是你安裝軟件包的版本。這或你的第二個Python的安裝是破碎的,往往可以是這種情況在MacOS X.

順便說一句,我假設,當你說WSGI你實際上是指給你使用的標籤mod_wsgi。如果你這樣做,請不要使用WSGI來引用mod_wsgi。 WSGI只是一個規範,mod_wsgi是一個特定的宿主實現。您不應該交替使用這些術語。

+0

謝謝。這是一個非常有用的答案。 +1。 – 2011-04-03 19:45:45

1

如果你在Apache的mod_wsgi運行,請在您的虛擬主機配置所有必要的蟒蛇的路徑是這樣的:

WSGIDaemonProcess ... python-path=/srv/lala/www:/srv/lala/lib/python2.6/site-packages:/Library/Python/2.5/site-packages