我正在尝试按照本教程为 Windows 的 python 包装 C++ 代码。我安装了 python。下载了最新版本的 boost(1_55)。首先我运行 bootstrap.bat 来构建 bjam.exe。接下来,我配置了 boost_1_55_0\tools\ build\v2\user-config.jam 使用 msvc10 编译器并添加 python 安装路径。现在,基于教程:
现在我们准备好了... 一定要 cd 到教程“hello.cpp”和“Jamroot”所在的 libs/python/example/tutorial。
最后:
比贾姆
尝试在该目录中运行 bjam 给我:“bjam 未被识别为内部或外部命令”错误。我在这里错过了什么?user-config.jam 应该放在另一个位置吗?或者 bjam 添加到系统路径?
更新:
好的。感谢@john 我不得不将 bjam 添加到系统路径。但是现在,运行它,hello_ext.lib 是在 \boost_1_55_0\libs\python\example\tutorial\bin\msvc-11.0\debug 中创建的,但不是 DLL.Based在教程中,我应该获取扩展名的 DLL 文件。现在,我不确定 python 如何与扩展名链接。但如果我假设它确实像 C++,那么它应该与 hello_ext.lib 链接。但是如果运行:
蟒蛇你好.py
其中包含从扩展导入的方法,python 运行时崩溃。没有关于此工作流的综合教程吗?Boost 文档完全不了解这个。
小智 4
这对我有用:
\n\n1.) 解压 boost_1_55_0.zip
\n\n2.) 准备使用 Boost 库二进制文件
\n\n转到 boost_1_55_0 根目录并打开命令提示符并键入以下命令:
\n\nBootstrap\nRun Code Online (Sandbox Code Playgroud)\n\n3.) 找到 user-config.jam:
\n\n在命令提示符中键入以下内容:
\n\nECHO %HOMEDRIVE%%HOMEPATH%\nRun Code Online (Sandbox Code Playgroud)\n\n4.) 如果 user-config.jam 位于您的 homedrive 目录中,请按如下所示进行更改:
\n\n注意力:
\n\n.jam 语言将 \xe2\x80\x9cwhitespace\xe2\x80\x9d 评为参数分隔!
\n\n# -------------------\n# MSVC configuration.\n# -------------------\n\n# Configure msvc (default version, searched for in standard locations and PATH).\n# using msvc ;\n\n# Configure specific msvc version (searched for in standard locations and PATH).\nusing msvc : 10.0 : C:\\\\app\\\\tools\\\\MSVisualStudio2010\\\\VC\\\\bin\\\\cl.exe ;\n\n\xe2\x80\xa6.\n\n# ---------------------\n# Python configuration.\n# ---------------------\n\n# Configure specific Python version.\n# using python : 3.1 : /usr/bin/python3 : /usr/include/python3.1 : /usr/lib ;\n\nusing python \n : 2.5 # Version\n : C:\\\\app\\\\tools\\\\Python25\\\\python.exe # Python Path\n : C:\\\\app\\\\tools\\\\Python25\\\\include # include path\n : C:\\\\app\\\\tools\\\\Python25\\\\libs # lib path(s)\n : <define>BOOST_ALL_NO_LIB=1\n ;\nRun Code Online (Sandbox Code Playgroud)\n\n5.) 配置后构建库!
\n\n转到 boost_1_55_0 根目录并打开命令提示符并键入以下命令:
\n\n.\\b2\nRun Code Online (Sandbox Code Playgroud)\n\n6.) 将 user-config.jam 复制到 \\boost_1_55_0\\libs\\python\\example\\tutorial\n7.) 进一步转到 \\boost_1_55_0\\stage\\lib\\
\n\n将 libboost_python-vc100-mt-gd-1_55.lib 重命名为 boost_python-vc100-mt-gd-1_55.lib 并将其复制到
\n\n\\boost_1_55_0\\libs\\python\\example\\tutorial\nRun Code Online (Sandbox Code Playgroud)\n\n8.) 现在您应该在 \\boost_1_55_0\\libs\\python\\example\\tutorial 目录中拥有所有这些文件
\n\nhello.cpp\nhello.py\nuser-config.jam\nJamroot\nboost_python-vc100-mt-gd-1_55.lib\nbjam.exe\nRun Code Online (Sandbox Code Playgroud)\n\n9.) 在 \\boost_1_55_0\\libs\\python\\example\\tutorial 中打开命令提示符
\n\n并输入以下命令:
\n\nbjam\nRun Code Online (Sandbox Code Playgroud)\n\n10.) 成功构建后..
\n\n您应该在目录中有此文件:
\n\nhello_ext.dll\nRun Code Online (Sandbox Code Playgroud)\n\n将此文件重命名为:
\n\nhello_ext.pyd\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5446 次 |
| 最近记录: |