我有一位客戶正在運行SUSE Enterprise Server 11,我想在其上使用名爲PyUNO
的OpenOffice-Python-Bridge的django-project。它運行一個帶有mod_wsgi
的apache2,沒有virtualenv或其他東西。在django中運行PyUNO
我加入了相關的路徑PYTHONPATH,但是當我運行一個shell python manage.py shell
,並嘗試import uno
,我得到這個錯誤:
dynamic module not initialized properly
它的OpenOffice 3.4,蟒蛇的2.6.x(無論是從SUSE-DVD )。
Google讓我變成了一個系統變量LD_LIBRARY_PATH
,但是一旦我設置了它,我就無法再啓動shell了,因爲python找不到django了(PYTHONPATH似乎被破壞了)。如果我運行另一個常見提議ldconfig -v /path/to/openoffice/program/
,結果是一樣的。
做完上述之一後,我可以運行系統範圍的python並導入uno。但是我不能再運行django-shell,因爲沒有找到django。
如果我重置LD_LIBRARY_PATH(通過unset LD_LIBRARY_PATH
或ldconfig
),我會遇到「舊」情況。
OpenOffice捆綁了一個python二進制文件。這個可以導入uno而不會出錯。
結果: 我想過使用其他uno.py或以某種方式告訴Apache2的使用哪個來與OpenOffice的蟒蛇版本。我該如何做這樣的事情或將相關的pyuno-dependencies添加到由apache使用的python-version?或者哪個版本的openoffice/pyuno可以解決我的問題?我想避免在SUSE源代碼中使用mod_wsgi和python。
還有一些關於LD_LIBRARY_PATH的提示可能會有幫助。
如果您設置了'LD_LIBRARY_PATH'而不是'LD_CONFIG_PATH',它會工作嗎? – Aya
啊,對不起。那是我已經使用的變量。我將編輯該問題。 – Marius
好吧,如果你可以在未設置LD_LIBRARY_PATH時導入django模塊,那麼簡單地設置LD_LIBRARY_PATH不應該導致它失敗,也不應該影響到PYTHONPATH。運行django shell時會得到什麼確切的錯誤信息? – Aya