我想在 Win7 机器上为 python 3.4 项目使用 Boost.python 它将连接到我们的 C++ DLL。我正在通过 boost.python 工作 教程,无法使其正常工作(请参阅下面的第 14 步)。我不认为这个 问题与 python 3.4 有关,但更容易一些(缺少路径设置 Visual Studio 命令提示符)。我不知道如何解决它!帮助!
以下是我正在做的事情的详细信息:
正如我所说,它是一台 Win7(虚拟)机器,我正在尝试使用 32 位运行 python / Visual Studio 。我确实安装了 python 3.4 并且在路径中...
从这个讨论开始: How to use Boost in Visual Studio 2010
我做了以下事情:
- 启动 Visual Studio 2010 命令提示符:
菜单->程序->Microsoft Visual Studio 2010->Visual Studio 工具->Visual Studio 命令提示符
cd C:\Boost\boost_1_55_0
Bootstrap
b2 toolset=msvc-10.0 --build-type=complete --with-python --libdir=C:\Boost\lib\i386 安装
初始警告link.jam: No such file or directory
C:\Boost\boost_1_55_0>dir C:\Boost\lib\i386 Volume in drive C has no label. Volume Serial Number is BCA0-48C6 Directory of C:\Boost\lib\i386 06/19/2014 11:45 AM <DIR> . 06/19/2014 11:45 AM <DIR> .. 06/19/2014 11:45 AM 217,088 boost_python-vc100-1_55.dll 06/19/2014 11:45 AM 188,908 boost_python-vc100-1_55.lib 06/19/2014 11:43 AM 496,640 boost_python-vc100-gd-1_55.dll 06/19/2014 11:43 AM 190,156 boost_python-vc100-gd-1_55.lib 06/19/2014 11:42 AM 217,088 boost_python-vc100-mt-1_55.dll 06/19/2014 11:42 AM 190,156 boost_python-vc100-mt-1_55.lib 06/19/2014 11:25 AM 496,640 boost_python-vc100-mt-gd-1_55.dll 06/19/2014 11:25 AM 191,452 boost_python-vc100-mt-gd-1_55.lib 06/19/2014 11:30 AM 5,757,576 libboost_python-vc100-1_55.lib 06/19/2014 11:29 AM 22,050,448 libboost_python-vc100-gd-1_55.lib 06/19/2014 11:24 AM 5,758,472 libboost_python-vc100-mt-1_55.lib 06/19/2014 11:23 AM 22,051,792 libboost_python-vc100-mt-gd-1_55.lib 06/19/2014 11:32 AM 6,247,162 libboost_python-vc100-mt-s-1_55.lib 06/19/2014 11:31 AM 21,969,684 libboost_python-vc100-mt-sgd-1_55.lib 06/19/2014 11:35 AM 6,246,266 libboost_python-vc100-s-1_55.lib 06/19/2014 11:33 AM 21,968,340 libboost_python-vc100-sgd-1_55.lib 16 File(s) 114,237,868 bytes 2 Dir(s) 14,676,119,552 bytes free
打开 Visual Studio 2010 并创建名为
的新“空项目”Python.Boost
- 右键单击
Property Manager->Release|Win32->Microsoft.Cpp.Win32.user
并选择Properties
- 选择“VC++ 目录”
- 编辑“包含目录”以添加
C:\Boost\include\boost_1_55_0\boost;C:\Python34\include
- 编辑“库目录”以添加
C:\Boost\lib\i386;C:\Python34\libs
- 按照此处的说明进行操作:http://www.boost.org/doc/libs/1_55_0/libs/python/doc/tutorial/doc/html/python/hello.html
在主目录中创建
user-config.jam
,内容如下:# MSVC configuration using msvc : 10.0 ; # Python configuration: using python : 3.4 : C:\\Python34 : C:\\Python34\\include : C:\\Python34\\libs ;
打开 Windows 命令提示符(从 Python.Boost 项目开始,通过工具->Visual Studio 命令提示符
cd C:\Boost\boost_1_55_0\libs\python\example\tutorial
bjam
C:\Boost\boost_1_55_0\libs\python\example\tutorial> bjam link.jam: No such file or directory ...patience... ...patience... ...found 1685 targets... ...updating 6 targets... msvc.link.dll bin\msvc-10.0\debug\hello_ext.pyd LINK : fatal error LNK1104: cannot open file 'boost_python-vc100-mt-gd-1_55.lib' call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 >nul link /NOLOGO /INCREMENTAL:NO /DLL /DEBUG /MACHINE:X86 /MANIFEST /subsystem:console /out:"bin\msvc-10.0\debug\hello_ext.pyd" /IMPLIB:"bin\msvc-10.0\debug\hello_ext.lib" /LIBPATH:"C:\Python34\libs" @"bin\msvc-10.0\debug\hello_ext.pyd.rsp" if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL% ...failed msvc.link.dll bin\msvc-10.0\debug\hello_ext.pyd bin\msvc-10.0\debug\hello_ext.lib bin\msvc-10.0\debug\hello_ext.pdb bin\msvc-10.0\debug\hello_ext.pdb... ...removing bin\msvc-10.0\debug\hello_ext.pdb ...skipped <p.>hello_ext.pyd for lack of <pbin\msvc-10.0\debug>hello_ext.pyd... ...failed updating 2 targets... ...skipped 1 target...
我错过了什么?好像路径没有按预期设置?帮助表示赞赏!
最佳答案
我在上面的失败中找到了这个问题的答案,但我遇到了一个新问题(使用 Python 3.4 会使链接器失败)。
为了解决这个问题,我从命令行执行了以下操作:
set lib=c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\LIB;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib;C:\Boost\lib\i386;C:\Python34\libs
接着是另一个 bjam
运行。使用修改后的 lib 设置,链接器找到正确的文件。这会在使用 Python3.4 时导致另一个链接问题(我将打开一个单独的帮助请求)。
作为实验,我通过将“config-user.jam”修改为以下内容回到了 Python2.7:
using python : 2.7 : C:\\Python27 : C:\\Python27\\include : C:\\Python27\\libs ;
然后程序链接成功,然后我就可以运行hello.py程序了(使用python2.7)
3.4 的链接器问题看起来更严重,我在其他地方看到过关于它的评论。我也会尝试使用 Python 3.2(或任何“3”版本)看看是否可行。我不需要使用 3.4,但至少需要 Python3。
关于python - 如何让 boost.python 教程与 Visual Studio 2010 和 python 3.4 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24311833/