我有一个运行 SUSE Enterprise Server 11 的客户,我想在其上使用一个带有 OpenOffice-Python-Bridge 的 django-project,名为PyUNO
. 它运行 apache2mod_wsgi
并且没有 virtualenv 或其他东西。
我将相关路径添加到 PYTHONPATH,但是当我运行 shellpython manage.py shell
并尝试import uno
时,我收到此错误:
dynamic module not initialized properly
它是 OpenOffice 3.4、python 2.6.x(均来自 SUSE-DVD)。
谷歌把我带到了一个 system-variable 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 附带的 python 版本。我该如何做这样的事情或将相关的 pyuno 依赖项添加到 apache 使用的 python 版本?或者哪个版本的 openoffice/pyuno 可以解决我的问题?我想避免接触 SUSE 源中的 mod_wsgi 和 python。
还有一些关于 LD_LIBRARY_PATH 的提示可能会有所帮助。