试图从在Linux上运行的django查询SQL Server - 无法打开lib'/ path / to / libtdsodbc.so'

时间:2013-08-28 12:44:14

标签: python django

我有一个在PostgreSQL上运行的Django站点,我试图从SQL Server中提取一些数据,以便填充一些表单字段。

我可以连接到SQL Server并使用Python与pyodbc和FreeTDS从Linux服务器查询数据库,我的印象是我可以在django视图中使用相同的连接字符串但是当我尝试时我得到了以下内容错误:

  

('01000',“[01000] [unixODBC] [Driver Manager]无法打开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: cannot open shared object file: No such file or directory发表的评论指出了我正确的方向。

3 个答案:

答案 0 :(得分:2)

对于延迟回答道歉,因为我记得由于有了新帐户而无法回答我自己的问题:

@ bradley.ayers在PIL - libjpeg.so.8: cannot open shared object file: No such file or directory发表的评论指出了我正确的方向。

感谢大家的帮助

答案 1 :(得分:2)

@ user2725332很抱歉发布回答而不是评论你的答案 - S.O.不允许初学者这样做,所以我想这一定是他们评论的首选方法。

你说bradley.ayers指出你正确的方向;如果您能告诉我们适合您的解决方案,那将会非常有帮助。是否将包含驱动程序的目录添加到/etc/ld.so.conf文件中,然后运行ldconfig?这无法帮助解决my post

中的问题

谢谢,BH

答案 2 :(得分:0)

您的代码中可能更改了“/usr/lib/odbc/libtdsodbc.so”中的lib路径“/path/to/libtdsodbc.so”,或者是“libtdsodbc.so”文件的路径放置。