Python 2.7 中的 boost 模块?

boost module in Python 2.7?

我正在尝试调试我正在处理的项目的文件,我确保要做的第一件事是 install/build 该文件正在导入的所有模块。这是文件的第一行:

from scitbx.array_family import flex

依次读取 flex.py、

from __future__ import division
import boost.optional # import dependency
import boost.std_pair # import dependency
import boost.python    

我在 ipython 中单独输入了命令,但在导入 boost.optional 时卡住了。因为它们都来自同一个模块,所以我尝试搜索名为 boost 的模块。

我找到了网站:http://www.boost.org/doc/libs/1_57_0/more/getting_started/unix-variants.html

并将相关的 .bz2 文件安装在与我的其他模块相同的目录中,以确保它在 sys.path 内。但是我仍然无法 ipython 导入任何东西。我的方法是否完全偏离了基础,或者是否有其他一些我找不到的增强模块?我应该提一下,我是一个完全的计算机新手,并且在学习的过程中。非常感谢任何建议!

您安装的库名为 Boost. This is a collection of C++ libraries, one of which is Boost.Python。然而,这个库不提供 Python 可以直接导入的模块——它不提供 boost.optional。相反,它支持 Python 和 C++ 之间的互操作性 - 您可以使用 Boost.Python 编写 C++ 库,然后可以在普通的 Python 解释器中使用。

在你的情况下 boost.optional 由邮件列表中的 CCTBX collection of software, which does depend on Boost and Boost.Python. So you are not too far off. This thread 提供,涵盖了你的错误消息和一些可能的解决方案。

本质上,您需要使用自定义 cctbx.python 命令(或 scitbx.python,它们等效)到 运行 python,因为这会设置 PYTHONPATH正确地满足他们的要求。它也记录在 this page.