首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Ubuntu 10.04上安装pycairo for python 3

如何在Ubuntu 10.04上安装pycairo for python 3
EN

Stack Overflow用户
提问于 2011-06-04 04:49:56
回答 3查看 6K关注 0票数 5

我正在尝试安装pycairo 1.10.0,以便与我的自定义构建python3.1一起使用。然而,

代码语言:javascript
运行
复制
sudo /flower/bin/easy_install-3.1 pycairo

失败,错误为

代码语言:javascript
运行
复制
XXX@XXXX:/adventures$ sudo /flower/bin/easy_install-3.1 pycairo
install_dir /flower/lib/python3.1/site-packages/
Searching for pycairo
Reading http://pypi.python.org/simple/pycairo/
Reading http://cairographics.org/pycairo
Best match: pycairo 1.10.0
Downloading http://cairographics.org/releases/pycairo-1.10.0.tar.bz2
Processing pycairo-1.10.0.tar.bz2
error: Couldn't find a setup script in /tmp/easy_install-zeG9HB/pycairo-1.10.0.tar.bz2

实际上,在上述下载中没有setup.py;相反,INSTALL说:

代码语言:javascript
运行
复制
Install Procedure
-----------------
$ ./waf --help     # shows available waf options
$ ./waf configure  # use --prefix and --libdir if necessary
                   # --prefix=/usr --libdir=/usr/lib64  for Fedora 64-bit
$ ./waf build
$ ./waf install

Use
$ python3 ./waf ...
if you have python2 and python3 installed, and the default is python 2.


Testing
-------
See test/README

我理解这一点,就像告诉我我应该

代码语言:javascript
运行
复制
sudo /flower/bin/python3.1 ./waf configure --prefix=/flower/pycairo/

或类似的;但是,这会导致以下错误:

代码语言:javascript
运行
复制
  ./options()
Setting top to                           : /tmp/pycairo-1.10.0 
Setting out to                           : /tmp/pycairo-1.10.0/build_directory 
  ./configure()
Checking for 'gcc' (c compiler)          : ok 
Checking for program python              : /usr/bin/python 
python executable '/usr/bin/python' different from sys.executable '/flower/bin/python3.1'
Checking for python version              : (2, 6, 5, 'final', 0) 
The python version is too old, expecting (3, 1, 0)

因此,我深入研究了源代码;似乎没有办法告诉这个waf工具,目标python版本仅仅是它自己运行的版本,所以我笨手笨脚地走到了这一步:

代码语言:javascript
运行
复制
Checking for 'gcc' (c compiler)          : ok 
Checking for program python              : /usr/bin/python 
#############293 /flower/bin/python3.1
Checking for python version              : (3, 1, 2, 'final', 0) 
Checking for library python3.1 in LIBDIR : yes 
Checking for program python3.1-config    : not found 
Checking for program python-config-3.1   : not found 
Checking for header Python.h             : Could not find the python development headers 
Checking for []                          : not found 
The configuration failed

事实上,我有一个文件/flower/bin/python3.1-config,所以我没有得到它。完成这一切的python代码相当难以处理。

有什么建议可以继续下去吗?有没有为pycairo +Python3准备好的*.deb或类似的?什么都找不到。

EN

回答 3

Stack Overflow用户

发布于 2011-07-17 17:15:11

通过查看该子目录中的python.py文件,我决定在通过python3执行waf之前尝试设置一个环境变量:

导出PYTHON="python3“

然后安装神秘地成功了..。

票数 10
EN

Stack Overflow用户

发布于 2011-07-25 12:51:12

我使用的是Ubuntu Karmic,但安装时使用的是源码编译的python2.7,所以这是我在我的例子中找到的一个变通方法。我认为这可能会有帮助,但请谨慎行事。

我找到了一些讨论线程,它们有类似的安装问题here

虽然它不是相同的python版本,但您可以为waf设置一些标志。

在使用以下命令后,我通过了Python.h部分

代码语言:javascript
运行
复制
LDFLAGS="-lm -ldl -lutil" ./waf configure

因为我已经从源码python2.7编译,所以我需要使用CFLAGS重新路由路径。最后一个命令如下所示:

代码语言:javascript
运行
复制
CFLAGS="-l/usr/local/include/python2.7 -l/usr/local/bin" LDFLAGS="-lm -ldl -lutil" ./waf configure

我不知道LDFLAGS是如何工作的,所以请谨慎使用。

或者(危险的方法),如果你不想设置CFLAGS,我确实在python的/local/bin中做了一些符号重新链接到我的python2.7,与python-config到python2.7-config相同(如果你是从包管理器安装的,你可能不需要这样做)

票数 4
EN

Stack Overflow用户

发布于 2011-06-04 17:37:33

这显然是pycairo安装程序中的一个错误,它试图找出Python exe在哪里(当它应该做的是简单地使用运行它的Python exe时)。

我试图找到它,但这段代码使用了它自己的完全自定义的构建系统(这不是唯一的原因),并且代码以一种非常奇怪的方式布局,令人惊讶的是,代码的主要部分 code (!)位于一个名为.waf3-1.6.4-e3c1e08604b18a10567cfcd2d02eb6e6的目录中,并且是用我见过的最难读的Python代码编写的。因此,我需要几个小时才能理解这段代码,并帮助您解决可能是一个小错误的问题。

如果你真的需要这个库,我建议你联系作者,并友好地询问他是否可以修复这个bug。

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

https://stackoverflow.com/questions/6232529

复制
相关文章

相似问题

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