金碧珠跑步

2024-06-03 14:48:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个客户正在运行一个suseenterpriseserver11,我想在这个服务器上使用一个django项目和名为PyUNO的openofficepython桥。它运行一个带有mod_wsgi的apache2,并且没有virtualenv或其他东西。在

我添加了PYTHONPATH的相关路径,但是当我运行shell python manage.py shell并尝试import uno时,我得到了以下错误:

dynamic module not initialized properly

它是openoffice3.4、python2.6.x(都来自SUSE-DVD)。在

Google让我找到了一个系统变量LD_LIBRARY_PATH,但是一旦我设置了它,我就不能再启动shell了,因为python再也找不到django了(PYTHONPATH似乎不知怎么地坏了)。如果我运行另一个常见的建议ldconfig -v /path/to/openoffice/program/,结果是一样的。在

完成上述操作后,我可以运行系统范围的python并导入uno。但我不能再运行django shell了,因为找不到django。在

如果{cdu>,那么{。在

OpenOffice与python二进制文件捆绑在一起。这个可以导入uno而不会出错。在

结果: 我想用另一个不知道或者告诉apache2使用openoffice附带的python版本。我如何做这样的事情,或者将相关的pyuno依赖项添加到apache使用的python版本中?或者哪个版本的openoffice/pyuno可以解决我的问题?我希望避免接触SUSE源代码中的mod\wsgi和python。在

另外,一些关于LD_LIBRARY_PATH的提示可能会有所帮助。在


Tags: pathdjango版本modwsgi系统libraryshell
1条回答
网友
1楼 · 发布于 2024-06-03 14:48:03

LD_LIBRARY_PATH是一个变量,它覆盖共享库的搜索路径(.so通常)。在

例如,当您设置它时,export LD_LIBRARY_PATH=/opt/test/mylibs会让所有应用程序在该位置搜索共享库。在

这解释了为什么djangoshell不能运行,因为它正在搜索不存在库的库。在

好消息是LD_LIBRARY_PATH可以设置为多个路径,用冒号(:)分隔。这样,可以导出LD_LIBRARY_PATH=/opt/test/mylibs:/opt/another/PATH

如果您设法找到所需的所有库的位置,您可以将它们的路径附加到LD_LIBRARY_PATH中,这样就可以解决您的问题了。在

我不知道,但是这是否是你面临的真正问题,但我想这可能会让你对这个变量的含义有一些事后的认识。在

相关问题 更多 >