【问题标题】:Linux libs on freebsd (ibm_db libdb2.so.1)freebsd 上的 Linux 库 (ibm_db libdb2.so.1)
【发布时间】:2012-03-15 20:22:15
【问题描述】:

我试图在 bsd 上使用专为 linux 设计的 lib 用于 IBM-db 连接:

我已按照 ibmdocs for linux 进行安装,并将所需的 linux 库放在 /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"

如果我将文件手动放入 /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_db 和 ibm_db_sa 都没有失败,我只是认为尝试在 bsd 上使用 linux 应用程序是一个问题。

【问题讨论】:

  • 只是为了确定,您的意思是/compat/linux/lib/,而不是/compact/linux/lib/,对吗?如果没有,那将是您的问题。
  • strcspn() 是一个标准的 C 字符串函数。就好像 libdb2.so.1 没有链接到标准库一样。
  • 是的抱歉 /compat/linux/lib 我正在运行 freebsd,python 在 vi​​rtualenv 中是 2.7.2。

标签: python sqlalchemy informix freebsd


【解决方案1】:

由于它在 /usr/lib 中寻找库,因此您似乎正在运行 Python 的 FreeBSD 版本。

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

【讨论】:

  • 我可以在 virtualenv 中这样做吗?
  • @Crooksey 据我所知,您需要安装一个完全独立的 Linux Python 包。不过,您应该能够像使用 Linux 版本的 Python 一样运行 virtualenv。
猜你喜欢
  • 2016-06-27
  • 1970-01-01
  • 1970-01-01
  • 2011-08-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-14
  • 1970-01-01
  • 2020-02-12
相关资源
最近更新 更多