我试图在Ubuntu10.4上编译Python2.7,但是在运行make
之后得到了以下错误消息:
Python build finished, but the necessary bits to build these modules were not found:
_bsddb bsddb185 sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
我需要什么包裹?(setup.py没有帮助)
sudo apt-get build-dep python2.6 python-gdbm python-bsddb3
(在maverick上使用python2.7
)。有关详细信息,请参见this answer。也可以看看this page,它同样适用于在Lucid上构建。
这些是旧的(大部分是折旧的)模块,您可能不会使用。您应该能够安全地忽略这些警告。
您可能需要担心的是
_bsddb
,一旦安装了Berkeley DB 4.8。。。我不确定它是否在Ubuntu的repos中。(编辑:显然是db package)bsddb185
是Oracle Berkley数据库模块的旧版本。据我所知,你完全可以忽略它。sunaudiodev
已折旧,未记录,我怀疑您是否需要使用它。你应该可以安全地忽略它。不管怎样,希望这有点帮助。。。
假设您已经安装了所有依赖项(在Ubuntu上,这些依赖项可能是
sudo apt-get install libdb4.8-dev
和各种其他-dev包之类的东西,那么这就是我构建Python的方式。在生成过程中不生成的模块只有:
接下来,我收集Python安装目录中没有的.so文件,并将它们复制到:
然后添加setuptools以获得良好的度量
在这一点上,我可以创建一个/opt/python272的tarball,并在任何64位Linux发行版上运行它,甚至可以在没有安装依赖项的精简版发行版上运行,也可以在具有旧的过时依赖项版本的旧发行版上运行。
我也安装了
pip
,但在这一点上,由于与virtualenv的一些失败的斗争,我的笔记中有一个空白。基本上,virtualenv不支持这种方案。大概是我做了easy_install pip
,然后:安装完模块后,我返回并重新运行命令以收集.so文件,并创建一个新的tarball。有几个包需要我花点时间来正确安装它们,我还没有做足够的全面测试,但是到目前为止它仍然可以工作,我正在使用这个Python构建在没有预先安装所有支持库的机器上运行生产应用程序。
相关问题 更多 >
编程相关推荐