Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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
Pythonywhere cx_Oracle DPI-1047:找不到64位Oracle客户端库;libclntsh.so:_Python_Oracle_Cx Oracle_Pythonanywhere - Fatal编程技术网

Pythonywhere cx_Oracle DPI-1047:找不到64位Oracle客户端库;libclntsh.so:

Pythonywhere cx_Oracle DPI-1047:找不到64位Oracle客户端库;libclntsh.so:,python,oracle,cx-oracle,pythonanywhere,Python,Oracle,Cx Oracle,Pythonanywhere,我正在尝试使用PythonAnywhere.com上的cx_Oracle连接到外部Oracle数据库 我遵循了Oracle网站、GitHub、StackOverflow和python anywhere论坛上提供的说明,但很难解决问题cx_Oracle.DatabaseError:DPI-1047:找不到64位Oracle客户端库:“libclntsh.so:无法打开共享对象文件:没有这样的文件或目录” 我遵循的主要说明如下,但不清楚作为Python Anywhere用户我是如何完成这项任务的 我

我正在尝试使用PythonAnywhere.com上的cx_Oracle连接到外部Oracle数据库

我遵循了Oracle网站、GitHub、StackOverflow和python anywhere论坛上提供的说明,但很难解决问题cx_Oracle.DatabaseError:DPI-1047:找不到64位Oracle客户端库:“libclntsh.so:无法打开共享对象文件:没有这样的文件或目录”

我遵循的主要说明如下,但不清楚作为Python Anywhere用户我是如何完成这项任务的

我已经上传并解压缩了即时客户端文件,并尝试了各种方法来获取$LD_LIBRARY_PATH来做一些事情,但老实说,这并没有完全意义


任何帮助都将不胜感激。

您是想从控制台中运行的代码中使用库,还是计划/始终运行的任务中使用库?还是从网站上?如果是后者,那么我认为它不会工作--
LD_LIBRARY_PATH
是在网站启动之前设置的,因此不可能更改它。如果是前者,你能提供一些关于你在PythonyWhere帐户中安装客户端文件的详细信息吗?嗨,Giles,很高兴听到这个人自己的消息,他是PythonAnywhere的忠实粉丝。这是一个flask web应用程序,它是一个API,与远程Oracle DB交互时需要将一些记录写入其中。非常乐意提供帮助!不幸的是,我认为这一次是个坏消息——要获取一个库,它需要位于库路径上,您知道,可以使用
LD\u library\u path
对其进行扩展。问题在于,该环境变量在进程启动时由运行时链接器读入。我们目前还没有办法让您在流程启动时设置环境变量;您可以在WSGI文件中更改它们,但这将在以后运行,因此如果您这样做,对
LD_LIBRARY\u PATH
所做的更改将不会产生任何效果。您可以在bash控制台中更改它,因为您可以在一个命令中更改库路径,然后在下一步中运行脚本——环境变量将在脚本的进程启动时设置,以便一切正常。我想理论上你可以使用子流程模块从网站的代码中剥离出来运行Oracle的东西(之前设置了环境变量),但这将是一个相当可怕的黑客行为,我不能凭良心推荐它:-(是的,这是一个很好的建议。TBH甚至允许您调整
LD_LIBRARY\u PATH
也会是一个胜利。我很惊讶它还没有出现在我们的待办事项列表中;我已经添加了它,并代表您投了赞成票。