如何在 osx 上安装 pycairo?

发布于 2024-08-13 04:40:35 字数 826 浏览 1 评论 0原文

我正在尝试安装 pycairo开罗图形库)在 OSX 下。

我开始

easy_install pycairo

并得到:

Requested 'cairo >= 1.8.8' but version of cairo is 1.0.4

error: Setup script exited with Error: cairo >= 1.8.8 not found

所以我去了 cairo 的网站并下载了 cairo 的最新包(1.8.8),还有名为 pixman 的最新包(两个源包 - 找不到 osx 二进制文件)

都解压了,每个都在自己的目录中。 对于 pixman,常规的 ./configure ;制作 ; sudo make install 工作只是找到 对于开罗,./configure 似乎有效,但 make 失败:

In file included from cairo-analysis-surface.c:37:
cairoint.h:71:20: error: pixman.h: No such file or directory

我做错了什么?

为什么我必须费尽心思才能让软件库在“正常运行”的操作系统上运行?为什么 darwin 不像 Linux 呢?

I am trying to install the pycairo (Python bindings for the cairo graphics library) under OSX.

I started with

easy_install pycairo

and got:

Requested 'cairo >= 1.8.8' but version of cairo is 1.0.4

error: Setup script exited with Error: cairo >= 1.8.8 not found

So I went to cairo's site and downloaded the latest package (1.8.8) of cairo, and also the latest package of something called pixman (both source packages -- couldn't find osx binaries)

unzipped both, each in own directory.
for pixman, the regular ./configure ; make ; sudo make install worked just find
for cairo, ./configure seemed to work, but make failed with:

In file included from cairo-analysis-surface.c:37:
cairoint.h:71:20: error: pixman.h: No such file or directory

What am I doing wrong?

And why do I have to struggle so much to get a software library to work on an os that "just works"? Why isn't darwin more like linux?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

夏至、离别 2024-08-20 04:40:35

如果您已经有 Homebrew,这两个命令应该会有所帮助:

$ brew install cairo --use-clang 
$ brew install py2cairo

对于非 Homebrew 安装的 Python,设置 PYTHONPATH 来查找 pycairo。您可以将 .bashrc/.profile/.whatever 中的 PYTHONPATH 设置为以下内容:

PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH.

我个人不需要使用最后一部分,但它可能会对您有所帮助。

If you already have homebrew, these two commands should be helpful:

$ brew install cairo --use-clang 
$ brew install py2cairo

For a non-Homebrew installed Python, set the PYTHONPATH to find pycairo. You can set your PYTHONPATH in your .bashrc/.profile/.whatever to the following:

PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH.

I personally didn't need to use this last part but it might help you.

糖果控 2024-08-20 04:40:35

看来您在这里混合了各种安装选项。 MacPorts 包系统 port install 命令应该自动提取特定包所需的所有依赖项,因此技巧是从正确的顶级项目开始。对于 python 包,MacPorts 目前有一个通用约定:以 py- 开头的包适用于 python 2.4,以 py25- 开头的包适用于 2.5,以 py26- 开头的包适用于 python 2.4。 2.6 的。目前,MacPorts 中提供了 py-cairopy25-cairopy26-cairo 软件包。

通过选择 py-cairo ,您选择了 python2.4 版本,您可能会发现 MacPorts 为您构建并安装了 python2.4(链接在 /opt/local/bin/python2 .4),如果您启动它,您可能会发现可以在那里导入 cairo。现在可能可以满足您的需求,但Python 2.4已经很旧并且不再受支持,因此,如果您刚刚开始,最好从Python 2.6开始,它是当前的两个版本之一Python 的。为此,您需要做的是:

sudo port install py26-cairo

这应该引入任何缺少的依赖项,主要是 MacPorts python2.6,您可以从 /opt/local/bin/python2.6 运行它。您可能需要更改 shell 启动脚本(可能是 .bash_profile)中的 $PATH,以便将 /opt/local/bin 放在搜索路径的早期位置。

因为安装 Cairo 及其 python 绑定似乎相当复杂,所以坚持使用完整的 MacPorts 解决方案应该更容易、更好。这确实意味着您不必要地(且无害地)安装了一些您不需要的 Python 实例。但如果您确实想清理一下,您可以轻松删除 MacPorts python24:

sudo port uninstall py-cairo python24

完全删除 python.org 安装的 python 更为复杂。我已经在此处解释了该过程。但只要你保持路径笔直,就没有迫切需要删除其中任何一个。

It appears you are mixing various install options here. The MacPorts package system port install command should automatically pull in all the dependencies needed for a particular package so the trick is to start with the right top-level project. For python packages, MacPorts has a general convention currently: packages that start with py- are for python 2.4, those with py25- are for 2.5, and py26- for 2.6. There are currently py-cairo, py25-cairo, and py26-cairo packages available in MacPorts.

By choosing py-cairo you picked the python2.4 version and you'll probably find that MacPorts built and installed a python2.4 for you (linked at /opt/local/bin/python2.4) and, if you launch it, you'll probably find that you can import cairo there. Now that may be OK for your needs but Python 2.4 is quite old and no longer supported so, if you're just starting, it might be better to start with Python 2.6, one of the two current versions of Python. To do so, all you should need to do is:

sudo port install py26-cairo

That should bring in any missing dependencies, mainly the MacPorts python2.6, which you can run from /opt/local/bin/python2.6. You may want to change your $PATH in your shell startup script, probably .bash_profile, to put /opt/local/bin early on the search path.

Because installing Cairo and its python bindings seems to be fairly complex, it should be easier and better to stick to using a complete MacPorts solution for this. That does mean you've needlessly (and harmlessly) installed a couple of Python instances that you won't need. But if you do want to clean things up a bit, you can easily remove the MacPorts python24 with:

sudo port uninstall py-cairo python24

Completely removing the python.org installed python is more complicated. I've explained the process here. But there's no pressing need to remove either as long as you keep your paths straight.

不必了 2024-08-20 04:40:35

好的。我解决了。将解决方案放在这里以供将来参考,它可能会对某人有所帮助。

基本上,整个 ports/fink 系统有点混乱,而且 osx 并不能很好地与 linux-y 世界兼容。

因此,我在 OSX 上安装 pycairo 所需的步骤是:

  • 下载 pixman、cairo、pycairo 的最新源版本
  • 提取所有内容。然后:

    cd PIXMAN_DIR ; ./配置;制作 ;须藤进行安装 
    cd 开罗_DIR ; cp PIXMAN_DIR/pixman/*.h 。 ; ./配置;制作 ;须藤进行安装
    cd PYCAYRO_DIR;找到 cairo.pc 
    

    希望能返回几个位置。选择最有可能的一个(开罗最新的一个)。对我来说它是“/opt/local/lib/pkgconfig/cairo.pc”并执行以下操作:

    导出 PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/
    

    在此之后,仍然在 PYCAIRO_DIR 中,执行:

    python setup.py install
    

这应该可以做到...

Ok. I solved it. Putting solution here for future reference, it might help someone.

Basically, the whole ports/fink system is a bit messed up, and osx doesn't really play nice with the linux-y world.

So, the steps I needed to install pycairo on OSX were:

  • download the latest source versions of pixman, cairo, pycairo
  • extract everything. Then:

    cd PIXMAN_DIR ; ./configure ; make ; sudo make install 
    cd CAIRO_DIR ; cp PIXMAN_DIR/pixman/*.h . ; ./configure ; make ; sudo make install
    cd PYCAYRO_DIR; locate cairo.pc 
    

    hopefully, several locations are returned. choose the most likely one (one with newest cairo). For me it was "/opt/local/lib/pkgconfig/cairo.pc" and do:

    export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/
    

    after this, still in PYCAIRO_DIR, do:

    python setup.py install
    

This should do it...

也只是曾经 2024-08-20 04:40:35

port 命令安装 darwinports python 安装的库,这与框架构建不同(因此步骤 2 和 3 不应该起作用)。尝试使用 sudo easy_install pycairo (尽管您的步骤 4 应该与此相同)。

还要查看 which python,以检查您实际上正在运行您认为的 python。

The port command installs the library for the darwinports python installation, which is different to the framework build (so steps 2 and 3 shouldn't work). Try sudo easy_install pycairo instead (although your step 4 should be equivalent to this).

Look at which python too, to check that you are in fact running the python you think you are.

迷荒 2024-08-20 04:40:35

在 Mac OS 上,您可以安装多个 Python 版本。如果您决定通过 Fink 或 MacPorts 安装 Python,您还可以拥有更多。当您从源代码编译库时,您应该确保它们指向正确的安装。

目前我的机器上安装了 Python 2.5.1 和 Python 2.6.4,我可以分别通过 python2.5python 调用它们。它们位于两个不同的文件夹中:
/System/Library/Frameworks/Python.framework/Versions/2.5/Library/Frameworks/Python.framework/Versions/2.6

我在编译时遇到了类似的问题来自 tarball 的 pycairo 1.8.8。在这种情况下,INSTALL 文件是您的朋友,因为它包含避免潜在版本冲突的正确说明。您基本上需要指定正确的前缀,以便将包安装在正确的文件夹中。

$ python -c "import sys; print sys.prefix"
  # make a note of the python prefix
$ ./configure --prefix=[python_prefix]
$ make
$ make install       # may require superuser access

使用 python2.5python 运行这些说明,您将能够正确安装两个版本的 pycairo(或通过 MacPorts / Fink 安装的任何版本)。

On Mac OS you can have multiple Python versions installed. You can have even more if you decide to install Python via Fink or MacPorts. When you compile libraries from the source, you should make sure they point to the correct installation.

I currently have Python 2.5.1 and Python 2.6.4 installed on my machine, which I can call via python2.5 and python respectively. They live in two different folders:
/System/Library/Frameworks/Python.framework/Versions/2.5and /Library/Frameworks/Python.framework/Versions/2.6

I was running into a similar problem when compiling pycairo 1.8.8 from the tarball. The INSTALL file in this case is your friend, as it contains the correct instructions to avoid potential version conflicts. You basically need to specify the correct prefix so that the package will be installed in the correct folder.

$ python -c "import sys; print sys.prefix"
  # make a note of the python prefix
$ ./configure --prefix=[python_prefix]
$ make
$ make install       # may require superuser access

Running these instructions with python2.5 and python you will be able to correctly install pycairo for both versions (or for any version installed via MacPorts / Fink).

落花随流水 2024-08-20 04:40:35

第 1 步:从终端运行此命令 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

第 2 步: brew install cairo

第 3 步: pip install pycairo

Step 1: Run this from terminal ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

Step 2: brew install cairo

Step 3: pip install pycairo

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文