我試圖按照說明here來使用Boost.Python。源代碼在該網頁中。我可以編譯,鏈接這個簡單的示例代碼,但是我不能在python命令行中導入生成的模塊。它總是錯誤:由Boost.Python創建的dll無法導入(下面是Boost Python的快速入門)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named hello_ext
我不知道問題出在哪兒,因爲該網頁只是說:。「就這樣,我們就大功告成了現在,我們可以建立這個作爲一個共享庫生成的DLL現在是可見到Python「。這是我的建築環境:
- 的Windows 7 64位,我是管理員和運行CMD作爲管理員
- 增壓版本1.64.0(預編譯的二進制boost_1_64_0-MSVC-14.0-64.exe從here下載)
- Python版本是2.7.13,64位
- 的Visual Studio 2015年更新3
- 目標是一個DLL
- 項目名稱是ConsoleApplication1,所以輸出ConsoleApplication1.dll。我已將文件名更改爲hello_ext.dll,但出現同樣的錯誤。
- 我用x64配置構建,我用dumpbin驗證過輸出ConsoleApplication1.dll真的是64位
- 我已經將包含ConsoleApplication1.dll的路徑...... \ ConsoleApplication1 \ x64 \ Release添加到python命令行中的sys.path。
那麼,你能告訴我如何在python中導入模塊嗎?非常感謝。
保存所有這些麻煩,並獲取[Visual Studio的預構建二進制文件](https://sourceforge.net/projects/boost/files/boost-binaries/1.64.0/) – PaulMcKenzie
錯誤:「無法解析的外部符號__imp_PyString_Type「在x64配置。在x32 config中出現錯誤LNK2001:無法解析的外部符號「__declspec(dllimport)...」錯誤 – user5280911
以'__imp_'開頭的那些錯誤表明您沒有在鏈接器設置中指定相應的導入庫「.lib」文件。我在你的描述中沒有看到任何內容,說明你已經告訴鏈接器將使用哪些導入庫或庫的名稱。設置路徑不會這樣做,並且DLL在構建過程中不起作用 - 它們僅在運行時使用。預構建的二進制文件包括導入庫(與大小爲兆字節的靜態庫相反,不是很大的.lib文件)。 – PaulMcKenzie