2012-03-15 39 views
2

我試着使用BSD上一個lib這是專爲Linux的IBM-DB連接:的Linux庫

我已經安裝的每ibmdocs爲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應用程序的問題。

+0

只是爲了確定,你的意思是'/ compat/linux/lib /',而不是'/ compact/linux/lib /',對吧?如果不是,那會是你的問題。 – 2012-03-15 20:25:45

+0

'strcspn()'是一個標準的C字符串函數。就好像libdb2.so.1沒有鏈接到標準庫。 – chrisaycock 2012-03-15 20:26:40

+0

對不起/ compat/linux/lib我運行freebsd和python是在virtualenv裏面的2.7.2。 – Crooksey 2012-03-15 20:29:51

回答

1

由於它正在尋找/ usr/lib中的庫,因此您似乎正在運行FreeBSD版本的Python。

由於FreeBSD的Linux兼容性是每個進程的兼容性,所以不能將Linux庫加載到FreeBSD進程中。如果你想動態加載Linux庫,你需要運行一個Linux版本的Python。

+0

我可以在virtualenv內做到嗎? – Crooksey 2012-03-15 20:42:55

+0

@Crooksey據我所知,你需要安裝一個完全獨立的Linux Python包。儘管如此,你應該可以使用Linux版本的Python來運行virtualenv。 – 2012-03-15 21:01:38