pip从docker容器中安装pymssql

我的docker容器正在使用centos6.6。 它无法安装pymssql pipssql:

Step 15 : RUN pip install pymssql ---> Running in c6a17c43790d Collecting pymssql Downloading http://piprepo-au/piprepo/pymssql/pymssql-2.1.1.zip (2.3MB) Installing collected packages: pymssql Running setup.py install for pymssql: started Running setup.py install for pymssql: finished with status 'error' Complete output from command /usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-6Tr3gO/pymssql/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-DZY29I-record/install-record.txt --single-version-externally-managed --compile: setup.py: platform.system() => 'Linux' setup.py: platform.architecture() => ('64bit', '') setup.py: platform.linux_distribution() => ('CentOS', '6.6', 'Final') setup.py: platform.libc_ver() => ('glibc', '2.3') setup.py: Not using bundled FreeTDS setup.py: include_dirs = ['/usr/local/include'] setup.py: library_dirs = ['/usr/local/lib'] running install running build running build_ext cythoning _mssql.pyx to _mssql.c Error compiling Cython file: ------------------------------------------------------------ ... return uuid.UUID(bytes_le=(<char *>data)[:length]) else: return (<char *>data)[:length] cdef int convert_python_value(self, object value, BYTE **dbValue, ^ ------------------------------------------------------------ _mssql.pyx:821:9: Signature not compatible with previous declaration Error compiling Cython file: ------------------------------------------------------------ ... cdef object msghandler cpdef cancel(self) cdef void clear_metadata(self) cdef object convert_db_value(self, BYTE *, int, int) cdef int convert_python_value(self, object value, BYTE **, int*, int*) except -1 

有没有人有任何想法? 我尝试了很多东西。 我没有在ubuntu16这个问题。

。 。 。

看起来这是由pymssql 2.1.12.1.3之间的某个接口更改造成的。 我没有时间调查确切的原因,但在注意到问题仍然存在于一个centos 7.x docker镜像后,我可以通过安装新版本的pymssql来解决这个问题:

 pip install pymssql==2.1.3