首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安装python2.6.5时“未能构建这些模块:_curses _curses_panel _ssl”

安装python2.6.5时“未能构建这些模块:_curses _curses_panel _ssl”
EN

Stack Overflow用户
提问于 2013-10-02 23:40:43
回答 2查看 15.7K关注 0票数 6

我对python和ubuntu很陌生。我试图在ubuntu12.10上安装python2.6.5。我已经有了python2.7.3,并且正在尝试并行安装2.6.5现有的python。在执行make时,我会得到以下错误:

代码语言:javascript
运行
复制
Failed to find the necessary bits to build these modules:
_bsddb             bsddb185           dl
imageop            linuxaudiodev      ossaudiodev
sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

Failed to build these modules:
_curses            _curses_panel      _ssl

我最担心的是_ssl模块。正如前面提到的,我使用了./configure,但是消息仍然是一样的。任何指南针都会赏识。

附加注意:习惯于抱怨它也不能构建bz2,但是我修正了有了这篇文章重新编译bzip2。现在轮到_ssl了。我不确定我是否需要_curses。

编辑:找到了make文件,看起来这是因为python2.6.5支持ssl v2,而这种支持在Ubuntu中被删除了。日志文件包含:

代码语言:javascript
运行
复制
*** WARNING: renaming "_ssl" since importing it failed: build/lib.linux-x86_64-2./_ssl.so: undefined symbol: SSLv2_method

这个博客没有ssl v2支持就重新构建了python2.6.8。我现在正在2.6.5源代码中尝试他们的更改。

编辑2:如上文所述,修改2.6.5源代码并删除ssl支持,解决了_ssl模块未构建的问题。另外,下面是我之前尝试安装的软件包列表:

代码语言:javascript
运行
复制
apt-get install libreadline-dev
apt-get install libssl-dev (already installed)
apt-get install libbz2-dev (already installed)
apt-get install build-essential (already installed)
apt-get install sqlite3
apt-get install tk-dev
apt-get install libsqlite3-dev
apt-get install libc6-dev (already installed)
apt-get install libgdbm-dev
apt-get install libncursesw5-dev

以下是make的完整输出:

代码语言:javascript
运行
复制
running build
running build_ext
building '_curses' extension
gcc -pthread -fPIC -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict prototypes -I. -I/tmp/nimbula/Python-2.6.5/./Include -I. -IInclude -I./Include -I/usr/local/include -I/tmp/nimbula/Python-2.6.5/Include -I/tmp/nimbula/Python-2.6.5 -c /tmp/nimbula/Python-2.6.5/Modules/_cursesmodule.c -o build/temp.linux-x86_64-2.6/tmp/nimbula/Python-2.6.5/Modules/_cursesmodule.o
building '_curses_panel' extension
gcc -pthread -fPIC -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I/tmp/nimbula/Python-2.6.5/./Include -I. -IInclude -I./Include -I/usr/local/include -I/tmp/nimbula/Python-2.6.5/Include -I/tmp/nimbula/Python-2.6.5 -c /tmp/nimbula/Python-2.6.5/Modules/_curses_panel.c -o build/temp.linux-x86_64-2.6/tmp/nimbula/Python-2.6.5/Modules/_curses_panel.o

Failed to find the necessary bits to build these modules:
_bsddb             bsddb185           dl
imageop            linuxaudiodev      ossaudiodev
sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

Failed to build these modules:
_curses            _curses_panel

running build_scripts

编辑3: Yay,谢谢你们问这些问题。当我查看我之前安装的软件包时,其中一个看起来不太好,就是libncursesw5-dev (因为它有一个版本,我是从一个旧帖子中得到的)。我尝试了以下方法,它解决了_curses和_curses_panel不构建的问题:

代码语言:javascript
运行
复制
apt-get install libncurses-dev

在安装libncurses-dev之后,我执行了: make,./configure,make。

现在make的输出是:

代码语言:javascript
运行
复制
running build
running build_ext

Failed to find the necessary bits to build these modules:
_bsddb             bsddb185           dl
imageop            linuxaudiodev      ossaudiodev
sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

running build_scripts
EN

回答 2

Stack Overflow用户

发布于 2013-10-07 23:00:04

下面是我如何在ubuntu12.10上解析pythong2.6.5安装:

1.)我试图安装以下库(其中一些库已经在系统上):

代码语言:javascript
运行
复制
apt-get install libreadline-dev
apt-get install libssl-dev (already installed)
apt-get install libbz2-dev (already installed)
apt-get install build-essential (already installed)
apt-get install sqlite3
apt-get install tk-dev
apt-get install libsqlite3-dev
apt-get install libc6-dev (already installed)
apt-get install libgdbm-dev
apt-get install libncurses-dev

2.)bz2模块未构建的问题:

a.)我从bz2下载了http://www.bzip.org/downloads.html源代码。b.)修改Makefile并将cc=gcc更改为'cc=gcc -fPIC`以下这个职位. c.) --执行make和Makefile. d.)使用命令行中的代码测试bz2 : python -c“Importbz2;print bz2.doc

3.)_ssl模块未构建的问题:

a.)通过从python源中删除ssl v2来修正ssl。遵循在迈克尔·舒特的博客里指令。就像一种魅力。

4.)此时,我使用make altinstall安装了Python2.6.5,而不是覆盖现有的python。我将/usr/bin/python指向我的新python安装。还有几样东西不见了。

5.)添加ez_setup: curl -O setup.py python ez_setup.py

6.)新增pip: easy_install -U pip

7.)已安装的setuptools: pip安装setuptools

在这一点上,它看起来都是可行的!

票数 3
EN

Stack Overflow用户

发布于 2013-10-02 23:44:55

您还没有提供足够的信息来真正了解发生了什么;生成输出和构建日志存在是有原因的,…

但我可以用大约80%的信心猜到:

您没有安装正确的头来构建它们。

例如,如果您已经为libssl安装了dpkg,而没有为libssl-dev安装dpkg,那么您将无法构建_ssl。在Ubuntu上,只需sudo apt-get install libssl-dev并修复它。在不同的发行版上,它可能类似于libssl-develssl-dev等。但是开发周期的基本概念在任何地方都是一样的:要运行一个需要foo的程序,只需要foo包,但是要构建一个需要foo的程序,也需要foo开发包。

对于其中的一些库,您所缺少的包并不是很明显,但是您仍然应该能够知道它通过查看日志而找不到的库或头文件的名称,您可以在Ubuntu论坛上搜索,或者在Ubuntu论坛上询问哪个包提供了丢失的文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19148564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档