Python freebsd上的Linux库(ibm_db libdb2.so.1)

Python freebsd上的Linux库(ibm_db libdb2.so.1),python,sqlalchemy,informix,freebsd,Python,Sqlalchemy,Informix,Freebsd,我正在尝试在bsd上使用为linux for IBM db连接设计的库: 我已经按照ibmdocsforlinux进行了安装,并将所需的linux libs放在/compat/linux/lib中/ 但我得到了导入错误: >>> import ibm_db Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: Shared object

我正在尝试在bsd上使用为linux for IBM db连接设计的库:

我已经按照ibmdocsforlinux进行了安装,并将所需的linux libs放在/compat/linux/lib中/

但我得到了导入错误:

>>> import ibm_db
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: Shared object "libdb2.so.1" not found, required by "ibm_db.so"
>>导入ibm\u db
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:未找到共享对象“libdb2.so.1”,是“ibm_db.so”所必需的
如果手动将文件放入/usr/lib或符号链接中,则会出现读取错误:

>>> import ibm_db
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: /usr/lib/libdb2.so.1: Undefined symbol "strcspn"
>>导入ibm\u db
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:/usr/lib/libdb2.so.1:未定义的符号“strcspn”
如果有人能帮上忙,我将永远感激


我已经安装了ibm_db和ibm_db_sa,没有出现故障,我只是认为在bsd上使用linux应用程序更重要。

因为它在/usr/lib中查找库,所以您似乎正在运行免费的bsd版Python


因为FreeBSD的Linux兼容性是每个进程的兼容性,所以不能将Linux库加载到FreeBSD进程中。如果您想动态加载Linux库,您需要运行Linux版本的Python。

只是为了确保,您的意思是
/compat/Linux/lib/
,而不是
/compact/Linux/lib/
,对吗?如果不是,那就是您的问题。
strcspn()
是标准的C字符串函数。就好像libdb2.so.1没有链接到标准库一样。是的,对不起/compat/linux/lib,我运行的是freebsd,python是2.7.2,在virtualenv中。我可以在virtualenv中这样做吗?@croksey据我所知,您需要安装一个完全独立的linux python包。不过,您应该能够使用Linux版本的Python运行virtualenv。