Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在django运行PyUNO_Python_Linux_Django_Openoffice.org_Pyuno - Fatal编程技术网

Python 在django运行PyUNO

Python 在django运行PyUNO,python,linux,django,openoffice.org,pyuno,Python,Linux,Django,Openoffice.org,Pyuno,我有一个客户正在运行SUSE Enterprise Server 11,我想在这个服务器上使用一个名为PyUNO的django项目和OpenOffice Python桥。它运行带有mod_wsgi的apache2,没有virtualenv之类的东西 我向PYTHONPATH添加了相关路径,但是当我运行shellpython manage.py shell并尝试导入uno时,我遇到以下错误: dynamic module not initialized properly 它是OpenOffice

我有一个客户正在运行SUSE Enterprise Server 11,我想在这个服务器上使用一个名为
PyUNO
的django项目和OpenOffice Python桥。它运行带有
mod_wsgi
的apache2,没有virtualenv之类的东西

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

dynamic module not initialized properly
它是OpenOffice 3.4、python 2.6.x(都来自SUSE-DVD)

Google引导我找到了一个系统变量
LD\u LIBRARY\u PATH
,但一旦我设置了它,我就不能再启动shell了,因为python再也找不到django了(PYTHONPATH似乎不知怎么被破坏了)。如果我运行另一个常见的建议
ldconfig-v/path/to/openoffice/program/
,结果是相同的

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

如果我重置LD_库路径(通过
unset LD_库路径
ldconfig
),我将进入“旧”状态

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

结果: 我考虑使用另一个uno.py,或者告诉apache2使用openoffice附带的python版本。我如何做类似的事情,或者将相关的pyuno依赖项添加到apache使用的python版本中?或者哪个版本的openoffice/pyuno可以解决我的问题?我希望避免从SUSE源代码中接触mod_wsgi和python


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

LD_LIBRARY_PATH是一个变量,它会覆盖共享库的搜索路径(.通常如此)

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

这解释了为什么django shell无法运行,因为它正在搜索不存在的库

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

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


但是,我不知道这是否是您所面临的真正问题,但我认为这可能会让您事后了解这个变量的含义。

如果您设置
LD\u LIBRARY\u PATH
而不是
LD\u CONFIG\u PATH
,是否有效?啊,对不起。这就是我已经使用的变量。我将编辑这个问题。好吧,如果您可以在未设置
LD\u LIBRARY\u PATH
时导入django模块,那么只需设置
LD\u LIBRARY\u PATH
不会导致失败,也不会影响
PYTHONPATH
。当运行django shell时,您得到的确切错误消息是什么?它再也找不到django了,如果我还添加了django路径,它在“导入操作系统”时失败。因此,定制此路径没有任何帮助。也不确定导入uno之后是否有效…嗯,这对我有帮助。至少值得一试。但是我需要实际的LD_LIBRARY_路径,这样我就可以添加相关的路径,而不会覆盖旧条目。我将尝试将丢失的路径添加到/etc/ld.so.conf并重新运行ldconfig。希望它会有所帮助。将openoffice/program的路径添加到/etc/ld.so.conf.d/*.conf没有帮助。