我正在尝试为 pymssql 创建一个 whl,其中包括具有 GNUTLS 支持的 FreeTDS。我的构建在docker上的 cflinuxfs2 上,它基于 ubuntu 14.04。此图像包括 gnutls,我使用以下选项编译了 FreeTDS R1_00:
--enable-msdblib \
--enable-sspi \
--sysconfdir=/etc/freetds \
--with-tdsver=7.1 \
--disable-apps \
--enable-static \
--disable-shared \
--disable-server \
--disable-pool \
--disable-odbc \
--with-gnutls \
我正在尝试按照他们遵循的PYMSSQL 文档步骤中的说明通过使用 -fPIC 集进行编译来创建公共 whl(不带 tls)。
我已经设定:
LDFLAGS="-Wl,-Bstatic -Bsymbolic -l:libsybdb.a -Wl,-Bdynamic -lgnutls -Wl,-Bdynamic"
在运行设置之前。PYMSSQL 库中的 PY 和生成的 whl 不包括 gnutls 符号。当我导入 pymssql 时,我得到:
ImportError:/usr/lib64/python2.7/site-packages/pymssql.so:未定义符号:gnutls_pem_base64_decode
我应该怎么做才能在 pymssql.so 中包含对 FreeTDS 中使用的 gnutls 符号的动态引用?
有没有更好的方法来做到这一点?归根结底,我需要一个包含带有 TLS 支持的 FreeTDS 的 whl,这样我就可以将它包含在一个烧瓶应用程序中,该应用程序将在 cloudfoundry 上的 python_buildpack 上运行。