热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

高分相求:python在linux下访问sqlserver的方法。

各位:我本来在windows下写了个程序用于访问sqlserver,现在要移植到linux下,有人说的pymssql我也看了一点资料。并且在linux下安装了freedts和unixod
各位:
   我本来在windows下写了个程序用于访问sql server,现在要移植到linux下,有人说的pymssql我也看了一点资料。并且在linux下安装了freedts 和unixodbc包。但有两个疑惑:下载的pymssql包tar之后就四个文件,不能编译,不知道是否需要编译。 疑惑2:在linux下执行测试程序时报错:Traceback (most recent call last):
  File "test.py", line 1, in ?
    import pymssql
  File "/home/lee/pymssql-0.6.0/pymssql.py", line 22, in ?
    import _mssql
ImportError: No module named _mssql
不知道为什么没有_mssql模块阿?

7 个解决方案

#1


当然需要编译了, _mssql就是编译后的extension module,由mssqldbmodule.c编译生成。请把编译时所显示错误贴上来!以便看看是否能够解决。

#2


在下载并解压后的pymssql里只有mssqldbmodule.c PKG-INFO pymssql.py setup.py 四个文件.
但我想知道,是用python对这些文件编译,还是就只是gcc mssqldbmodule阿??请指教,谢谢.

#3


直接执行
python setup.py install就可以了
python中的distutil会自动编译的,不用自己编译

如果编译出现问题,那么请把详细信息贴出来,这样好分析问题。

#4


[root@ksglab pymssql-0.6.0]# python setup.py install
running install
running build
running build_py
creating build
creating build/lib.linux-i686-2.3
copying pymssql.py -> build/lib.linux-i686-2.3
running build_ext
building '_mssql' extension
creating build/temp.linux-i686-2.3
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/include -I/usr/local/include -I/usr/include/freetds -I/usr/local/include/freetds -I/usr/local/include/python2.3 -c mssqldbmodule.c -o build/temp.linux-i686-2.3/mssqldbmodule.o
mssqldbmodule.c:57: warning: function declaration isn't a prototype
mssqldbmodule.c:58: warning: function declaration isn't a prototype
mssqldbmodule.c:80: warning: function declaration isn't a prototype
mssqldbmodule.c:108: warning: function declaration isn't a prototype

#5


mssqldbmodule.c: In function `msg_handler':
mssqldbmodule.c:118: warning: long int format, DBINT arg (arg 3)
mssqldbmodule.c: At top level:
mssqldbmodule.c:125: warning: function declaration isn't a prototype
mssqldbmodule.c:247: warning: function declaration isn't a prototype
gcc -pthread -shared build/temp.linux-i686-2.3/mssqldbmodule.o -L/usr/lib -L/usr/local/lib -L/usr/lib/freetds -L/usr/local/lib/freetds -lsybdb -o build/lib.linux-i686-2.3/_mssql.so
running install_lib
copying build/lib.linux-i686-2.3/pymssql.py -> /usr/local/lib/python2.3/site-packages
copying build/lib.linux-i686-2.3/_mssql.so -> /usr/local/lib/python2.3/site-packages
byte-compiling /usr/local/lib/python2.3/site-packages/pymssql.py to pymssql.pyc

#6


以上是编译信息.
但在重新执行测试程序时又报错:
[root@ksglab pymssql-0.6.0]# python test.py
Traceback (most recent call last):
  File "test.py", line 1, in ?
    import pymssql
  File "/home/lee/pymssql-0.6.0/pymssql.py", line 22, in ?
    import _mssql
ImportError: libsybdb.so.4: cannot open shared object file: No such file or directory

#7


Ok

推荐阅读
author-avatar
fjy69
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有