![](/img/trans.png)
[英]Python - Can't open lib 'libtdsodbc.so' : file not found
[英]Trying to query SQL Server from django running on Linux - Can't open lib '/path/to/libtdsodbc.so'
我有一个在PostgreSQL上运行的Django站点,我试图从SQL Server中提取一些数据以填充一些表单字段。
我可以使用Python与pyodbc和FreeTDS连接到SQL Server并从Linux服务器查询数据库,我觉得我可以在django视图中使用相同的连接字符串但是当我尝试时遇到以下错误:
('01000',“[01000] [unixODBC] [驱动程序管理器]无法打开lib'/ path / to / libtdsodbc.so':找不到文件(0)(SQLDriverConnect)”)
我已经尝试过更改文件和文件夹权限,但它并没有让我任何地方,就像我说我可以通过Python而不是Django连接。
我也可以使用django applications文件夹中的命令行进行连接
manage.py shell
任何帮助是极大的赞赏。
更新:
该文件肯定存在,Django和Python都使用相同的ODBC和FreeTDS配置文件。
我不使用virtualenv。
当我执行初始设置时,我确实看到了一些对/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
引用,但我的印象是,这可以解决的任何问题都会阻止python连接,这不是这样吗?
更新2:
我已经尝试过使用pymssql并且我得到了类似的结果,它可以通过Python工作但是使用Django我得到的是这个ImportError:
libct.so.4:无法打开共享对象文件:没有这样的文件或目录
更新 - 已解决
@ bradley.ayers在PIL中发表评论- libjpeg.so.8:无法打开共享对象文件:没有这样的文件或目录指向我正确的方向。
对于延迟回答道歉,我记得由于有了新帐户,我无法回答我自己的问题:
@ bradley.ayers在PIL中发表评论- libjpeg.so.8:无法打开共享对象文件:没有这样的文件或目录指向我正确的方向。
感谢你的帮助
@ user2725332很抱歉发布答案而不是评论你的答案 - 所以不允许初学者这样做,所以我想这一定是他们首选的评论方法。
你说bradley.ayers指出你正确的方向; 如果您能告诉我们适合您的解决方案,那将会非常有帮助。 是否将包含驱动程序的目录添加到/etc/ld.so.conf文件中,然后运行ldconfig? 这对我的帖子中的问题无效
谢谢,BH
您可能在代码中更改了“/usr/lib/odbc/libtdsodbc.so”中的lib路径“/path/to/libtdsodbc.so”,或者更改了文件“libtdsodbc.so”的路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.