2017-06-16 69 views
1

全部,自定義Python構建 - time.so:未定義的符號:PyExc_ValueError

我正在爲嵌入式系統開發一個新的C++項目。系統的一部分是一些遺留的Python代碼,我們也需要進行接口。我已經使用Python提供的各種PyImport_ImportModule函數等將C++原型化爲Python接口,並在我的主機系統(Ubuntu 64位17.04)上對其進行了測試。

但是,新項目中的構建系統也嘗試構建所有依賴項,因此它從源代碼構建Python 2.7.13。我看到的問題是過去與主機系統一起工作的接口代碼Python與新建的源Python不兼容。我看到的錯誤是「time.so:未定義的符號:PyExc_ValueError」,而我試圖從C++調用的.py文件確實將導入時間作爲前幾行之一。我檢查了time.so,它出現在定製的Python中,我更新了LD_LIBRARY_PATH以包含它,但這並沒有幫助。在Python的構建結束時,我確實看到了這些警告,所以也許其中一個是相關的?

 
Python build finished, but the necessary bits to build these modules were not found: 
_bsddb    _sqlite3   _ssl    
_tkinter   bsddb185   bz2    
dbm    dl     gdbm   
imageop   readline   sunaudiodev  
zlib             

任何人都可以建議接下來要做什麼?我們不啓用任何特殊選項或在我們從源代碼構建的Python中使用任何非標準標誌(可能需要一些額外的設置)?

回答

1

這通常發生在兩種:

  • 需要乾淨的構建或
  • 錯誤libpython LIB被鏈接。我建議先嚐試一下clean build,然後仔細檢查你的鏈接標誌(確保你爲Python-2.7構建並鏈接到Python-2.7,而不是說Python-3。*等)。

另外,請參閱此討論中,它看起來像一個非常類似的問題:https://www.panda3d.org/forums/viewtopic.php?t=13222

編輯:這也可能是相關的:undefined symbol: PyExc_ImportError when embedding Python in C

+0

感謝您的答覆,現在想這些建議。 – SeanLabs