首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在django中运行PyUNO

在django中运行PyUNO
EN

Stack Overflow用户
提问于 2013-06-21 11:06:21
回答 1查看 657关注 0票数 4

我有一个客户正在运行一个Server 11,我想在该服务器上使用一个django-项目和OpenOffice,名为PyUNO。它使用apache2运行mod_wsgi,并且没有虚拟主机或其他什么东西。

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

代码语言:javascript
复制
dynamic module not initialized properly

它是OpenOffice 3.4,python2.6.x(都来自SUSE)。

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

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

如果我重置LD_LIBRARY_PATH (通过unset LD_LIBRARY_PATHldconfig),就会遇到“旧”的情况。

OpenOffice附带了一个python二进制文件。这一个可以导入uno而没有错误。

结果:我考虑使用另一个uno.py,或者以某种方式告诉apache2使用openoffice附带的python。我如何才能这样做,或者将相关的pyuno依赖项添加到apache使用的python版本中?或者哪个版本的openoffice/pyuno可以解决我的问题?我想避免接触mod_wsgi和python的SUSE-来源。

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

EN

回答 1

Stack Overflow用户

发布于 2013-06-25 10:49:28

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

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

这就解释了为什么django-shell不能运行,因为它在搜索不存在的库。

好消息是,可以将LD_LIBRARY_PATH设置为几条路径,用冒号(:)分隔。这样,您就可以导出LD_LIBRARY_PATH=/opt/test/mylibs:/opt/another/path

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

我不知道,但是这是否是你所面临的真正问题,但我认为这可能会给你一些关于这个变量的意义的一些后知后觉。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17233724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档