热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用默认的python在MacOSX上安装PyCairo1.10-HowtoinstallPyCairo1.10onMacOSXwithdefaultpython

Hasanyoneinstalledpycairo1.10onthemacusingthenewwafbuild?Itsfailingoncantfindpyth

Has anyone installed pycairo 1.10 on the mac using the new waf build? Its failing on can't find python headers.

有没有人使用新的waf构建在mac上安装了pycairo 1.10?它的失败无法找到python标头。

3 个解决方案

#1


13  

I think waf is seriously broken for Mac OS X :(

我认为waf严重破坏Mac OS X :(

Here's how it worked for me. After python waf configure failed to find Python.h, I looked through the config.log file located in build_directory and found out that the true cause of failure was incompatible architecture. The waf script tries to build a simple source file with CPython calls in it using i386 architecture. It fails to do so, because my python is built for the x86_64 architecture.

这是它对我有用的方式。在python waf configure找不到Python.h后,我查看了build_directory中的config.log文件,发现失败的真正原因是架构不兼容。 waf脚本尝试使用i386架构在其中构建一个包含CPython调用的简单源文件。它没有这样做,因为我的python是为x86_64架构而构建的。

I guess, you could rebuild python as a universal binary, I haven't tried that. It is possible, however, to build pycairo using the x86_64 architecture. Here's how.

我想,你可以将python重建为通用二进制文件,我没试过。但是,可以使用x86_64架构构建pycairo。就是这样。


My setup:

我的设置:

$ python --version
Python 2.7.2

$ type python
python is /usr/local/bin/python

$ file /usr/local/bin/python
/usr/local/bin/python: Mach-O 64-bit executable x86_64

$ brew --version
0.8

Importrant: my python version is built for the x86_64 architecture. Make sure it is also the case for you before performing the steps described below.

Importrant:我的python版本是为x86_64架构而构建的。在执行下述步骤之前,请确保您也是如此。

brew stands for homebrew. You must use it instead of fink or MacPorts in order for the following steps to work for you.

brew代表自制。您必须使用它而不是fink或MacPorts才能使以下步骤适合您。


Now, to install cairo and pycairo I do the following:

现在,要安装cairo和pycairo,我会执行以下操作:

  1. brew install cairo (version 1.10.2 as of today)
  2. brew install cairo(截至今日版本1.10.2)
  3. Get pycairo source for python 2.x (if you get a snapshot, it is named py2cairo, whereas pycairo now requires python 3.x). I used the source from master branch (commit f3435910d8f5365b45ebd4216f4043383c9e3e19)
  4. 获取python 2.x的pycairo源代码(如果获得快照,则命名为py2cairo,而pycairo现在需要python 3.x)。我使用了master分支的源代码(commit f3435910d8f5365b45ebd4216f4043383c9e3e19)
  5. Open wscript in your editor of choice, locate the line env = ctx.env in the function configure and add the following line below it

    在您选择的编辑器中打开wscript,在函数configure中找到行env = ctx.env并在其下面添加以下行

    env.append_unique('CFLAGS', ['-arch', 'x86_64'])

    env.append_unique('CFLAGS',[' - arch','x86_64'])

  6. Save the file

    保存文件

  7. Run these commands in your terminal:

    在终端中运行以下命令:

    export CC=/usr/bin/gcc

    export CC = / usr / bin / gcc

    export PKG_CONFIG_PATH=/usr/local/Cellar/cairo/1.10.2/lib/pkgconfig/

    export PKG_CONFIG_PATH = / usr / local / Cellar / cairo / 1.10.2 / lib / pkgconfig /

    Important: the latter path will only work for you if you installed cairo via homebrew

    重要提示:如果您通过自制软件安装cairo,后一条路径将仅适用于您

  8. Then run the waf commands described in the pycairo's INSTALL file:

    然后运行pycairo的INSTALL文件中描述的waf命令:

    python waf configure

    python waf配置

    python waf build

    python waf build

    python waf install

    python waf安装

This should do it. If it doesn't work for you, I think it's better to raise the topic on the pycairo mailing list (if it has one).

这应该做到这一点。如果它不适合你,我认为最好在pycairo邮件列表上提出主题(如果有的话)。

#2


12  

For anyone coming back to this, I was able to get py2cairo installed on OSX Lion with a slightly different approach, based on llimllib's link. Hope this helps:

对于任何回到这里的人来说,我能够在OSX Lion上安装py2cairo,其方法略有不同,基于llimllib的链接。希望这可以帮助:

python waf clean
export PYTHOnPATH=/Library/Frameworks/Python.framework/Versions/2.7/
export LD_LIBRARY_PATH=/Library/Frameworks/Python.framework/Versions/2.7/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/Library/Frameworks/Python.framework/Versions/2.7/lib:$LD_LIBRARY_PATH
export LINKFLAGS='-search_dylibs_first  -L /Library/Frameworks/Python.framework/Versions/2.7/lib/'
export ARCHFLAGS='-arch x86_64'
export CC=/usr/bin/gcc-4.2
export PKG_CONFIG_PATH=/usr/local/Cellar/cairo/1.10.2/lib/pkgconfig/

python waf configure --prefix=$PYTHONPATH
python waf build
python waf install

#3


3  

android's step almost works. one needs to use (from llimllib):

android的步骤几乎可以工作。一个人需要使用(来自llimllib):

export ARCHFLAGS='-arch x86_64'

export ARCHFLAGS =' - arch x86_64'

in step 5, and then python waf install can succeed.

在第5步中,然后python waf install就可以成功了。


推荐阅读
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • .NetCoreWebApi生成Swagger接口文档的使用方法
    本文介绍了使用.NetCoreWebApi生成Swagger接口文档的方法,并详细说明了Swagger的定义和功能。通过使用Swagger,可以实现接口和服务的可视化,方便测试人员进行接口测试。同时,还提供了Github链接和具体的步骤,包括创建WebApi工程、引入swagger的包、配置XML文档文件和跨域处理。通过本文,读者可以了解到如何使用Swagger生成接口文档,并加深对Swagger的理解。 ... [详细]
author-avatar
停留的烟蒂_984
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有