Python中文
首页
教程
问答
标签
搜索
登录
注册
生成cx_Oracle时出现问题-libclntsh.so.11.1=>未找到
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我试图为Python2.7.2和Oracle11g安装构建cx_Oracle,但是构建的cx_Oracle.so找不到libclntsh.so.11.1,因此在Python中导入cx_Oracle失败。</p> <pre><code>/mypath/cx_Oracle-5.1.1/build/lib.linux-x86_64-2.7-11g]$ ldd cx_Oracle.so libclntsh.so.11.1 => not found libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ae9be290000) libc.so.6 => /lib64/libc.so.6 (0x00002ae9be4ab000) /lib64/ld-linux-x86-64.so.2 (0x000000389b600000) </code></pre> <p>我的Oracle客户端安装目录中有<strong>libclntsh.so.11.1</strong>:</p> <pre><code>/apps/oracle/client/11.2.0.1/home1/lib]$ ls -l libclntsh.so* libclntsh.so -> /apps/oracle/client/11.2.0.1/home1/lib/libclntsh.so.11.1 libclntsh.so.11.1 </code></pre> <p>而且cx_Oracle setup.py正在选择这个lib dir:</p> <pre><code>/mypath/cx_Oracle-5.1.1]$ python2.7 setup.py build /apps/oracle/client/11.2.0.1/home1/ running build running build_ext building 'cx_Oracle' extension gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/apps/oracle/client/11.2.0.1/home1/rdbms/demo -I/apps/oracle/client/11.2.0.1/home1/rdbms/public -I/apps/bweb/python-2.7.2/include/python2.7 -c cx_Oracle.c -o build/temp.linux-x86_64-2.7-11g/cx_Oracle.o -DBUILD_VERSION=5.1.1 In file included from /apps/oracle/client/11.2.0.1/home1/rdbms/public/oci.h:3024, from cx_Oracle.c:10: /apps/oracle/client/11.2.0.1/home1/rdbms/public/ociap.h:10788: warning: function declaration isn't a prototype /apps/oracle/client/11.2.0.1/home1/rdbms/public/ociap.h:10794: warning: function declaration isn't a prototype gcc -pthread -shared build/temp.linux-x86_64-2.7-11g/cx_Oracle.o -L/apps/oracle/client/11.2.0.1/home1/lib -lclntsh -o build/lib.linux-x86_64-2.7-11g/cx_Oracle.so </code></pre> <p>这个设置明显有问题吗?</p> <p>谢谢</p> <p><strong>更新</strong></p> <p>My<strong>LD_LIBRARY_PATH</strong>包含上面带有libclntsh.so.11.1的lib目录</p> <pre><code>$ echo $LD_LIBRARY_PATH /apps/oracle/client/11.2.0.1/lib </code></pre> <p>这似乎没什么区别。我重建了cxúOracle.so文件,当我运行<code>$ ldd cx_Oracle.so</code>时,它仍然显示<code>libclntsh.so.11.1 => not found</code>。</p> <p><strong>Python无法加载生成的模块:</strong></p> <pre><code>Python 2.7.2 (default, Jan 19 2012, 14:38:32) [GCC 3.4.6 20060404 (Red Hat 3.4.6-11)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import cx_Oracle Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: libclntsh.so.11.1: cannot open shared object file: No such file or directory </code></pre> <p><strong>已解决</strong></p> <p>该问题与环境变量LD LIBRARY路径有关。由于与(corp env)合作的设置受到限制,我不得不将cx_Oracle构建为另一个用户(系统帐户)。i、 e.我在运行这个:</p> <pre><code>$ sudo -u username python27 setup.py build </code></pre> <p>因此,即使<strong>LD_LIBRARY_PATH</strong>已为我正确设置,但在以其他用户身份执行命令时,我的版本并未使用。通过将源代码移动到具有权限的位置并以用户身份运行生成,我能够成功生成。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>是的。您忘记告诉加载程序缓存工具它需要在该目录中查找库。将该目录添加到<code>/etc/ld.so.conf</code>或类似文件并运行<code>ldconfig</code>。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
VirtualEnvRapper错误:路径python2(来自python=python2)不存在
1 回答
virtualenvs上的pyinstaller,没有名为导入错误的模块
2 回答
virtualenvs是否可以退回到用户包而不是系统包?
1 回答
virtualenvwrapper CentOS7
9 回答
virtualenvwrapper IOError:[Errno 13]权限被拒绝
8 回答
virtualenvwrapper mkproject和shell在windows中的启动问题?
9 回答
virtualenvwrapper mkvirtualenv不工作但没有错误
9 回答
Virtualenvwrapper python bash
10 回答
virtualenvwrapper:“workon”何时更改到项目目录?
7 回答
virtualenvwrapper:mkvirtualenv可以工作,但是rmvirtualenv返回bash:没有这样的文件或目录
3 回答
virtualenvwrapper:virtualenv信息存储在哪里?
10 回答
virtualenvwrapper:命令“python设置.pyegg_info“失败,错误代码为1
4 回答
virtualenvwrapper:如何将mkvirtualenv的默认Python版本/路径更改为ins
1 回答
Virtualenvwrapper:模块“pkg_resources”没有属性“iter_entry_points”
10 回答
Virtualenvwrapper:没有名为virtualenvwrapp的模块
7 回答
Virtualenvwrapper.bash_profi的正确设置
6 回答
Virtualenvwrapper.hook:权限被拒绝
3 回答
virtualenvwrapper.sh:fork:资源暂时不可用Python/Djang
9 回答
Virtualenvwrapper.shlssitepackages命令不工作
3 回答
Virtualenvwrapper.sh函数在bash sh中不可用
4 回答