13

OSXの下にpycairo ( cairoグラフィックライブラリのPythonバインディング)をインストールしようとしています。

私はから始めました

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 ; make ; sudo make installはcairoを検索するだけで機能し、。/ configureは機能しているように見えましたが、makeは次のコマンドで失敗しました。

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

私は何が間違っているのですか?

そして、なぜ私はソフトウェアライブラリを「正しく機能する」OSで動作させるためにそれほど苦労しなければならないのですか?ダーウィンがLinuxに似ていないのはなぜですか?

4

6 に答える 6

12

自作を既にお持ちの場合は、次の 2 つのコマンドが役立ちます。

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

Homebrew 以外でインストールされた Python の場合、pycairo を見つけるように PYTHONPATH を設定します。.bashrc/.profile/.whatever の PYTHONPATH を次のように設定できます。

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

私は個人的にこの最後の部分を使用する必要はありませんでしたが、役立つかもしれません.

于 2015-05-06T23:02:42.103 に答える
7

ここでさまざまなインストールオプションを組み合わせているようです。MacPorts package systemport installコマンドは、特定のパッケージに必要なすべての依存関係を自動的に取り込む必要があるため、適切なトップレベルプロジェクトから開始するのがコツです。pythonパッケージの場合、MacPortsには現在一般的な規則があります。で始まるパッケージpy-はpython 2.4用、で始まるパッケージpy25-は2.5用、およびpy26-2.6用です。現在py-cairo、MacPortsには、、、py25-cairoおよびパッケージがあります。py26-cairo

python2.4バージョンを選択py-cairoすると、MacPortsがpython2.4をビルドしてインストールしたことがわかります(にリンクされています/opt/local/bin/python2.4)。起動すると、そこにcairoをインポートできることがわかります。これでニーズは問題​​ないかもしれませんが、Python 2.4はかなり古く、サポートされなくなったため、始めたばかりの場合は、現在の2つのバージョンのPythonの1つであるPython2.6から始める方がよいでしょう。そうするためにあなたがする必要があるのは:

sudo port install py26-cairo

これにより、不足している依存関係、主にから実行できるMacPortspython2.6がもたらされるはずです/opt/local/bin/python2.6$PATHシェルの起動スクリプト(おそらく.bash_profile)を変更/opt/local/binして、検索パスの早い段階に配置することをお勧めします。

CairoとそのPythonバインディングのインストールはかなり複雑なように思われるため、このために完全なMacPortsソリューションを使用する方が簡単で優れているはずです。つまり、不要なPythonインスタンスをいくつか(そして無害に)インストールしたということです。しかし、少しクリーンアップしたい場合は、MacPortspython24を次の方法で簡単に削除できます。

sudo port uninstall py-cairo python24

python.orgにインストールされているpythonを完全に削除するのはもっと複雑です。ここでプロセスを説明しました。ただし、パスをまっすぐに保つ限り、削除する必要はありません。

于 2009-11-28T07:26:38.210 に答える
7

Ok。私はそれを解決しました。将来の参考のためにここに解決策を置くと、誰かを助けるかもしれません。

基本的に、ports/fink システム全体が少し混乱しており、osx は linux-y の世界とあまりうまく機能しません。

したがって、OSX に pycairo をインストールするために必要な手順は次のとおりです。

  • pixman、cairo、pycairo の最新のソース バージョンをダウンロードします。
  • すべてを抽出します。それで:

    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 
    

    うまくいけば、いくつかの場所が返されます。最も可能性の高いもの (カイロが最新のもの) を選択します。私にとっては「/opt/local/lib/pkgconfig/cairo.pc」で、次のようにします。

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

    この後、まだ PYCAIRO_DIR で、次のようにします。

    python setup.py install
    

これで済むはず…

于 2009-09-30T22:29:17.017 に答える
3

このportコマンドは、フレームワークのビルドとは異なる darwinports python インストール用のライブラリをインストールします (したがって、ステップ 2 と 3 は機能しません)。代わりに試してくださいsudo easy_install pycairo(ただし、手順 4 はこれと同等のはずです)。

も見てwhich python、あなたが思っている python を実際に実行していることを確認してください。

于 2009-11-28T06:52:25.143 に答える
2

Mac OS では、複数の Python バージョンをインストールできます。Fink または MacPorts 経由で Python をインストールする場合は、さらに多くのことができます。ソースからライブラリをコンパイルするときは、ライブラリが正しいインストールを指していることを確認する必要があります。

python2.5現在、マシンに Python 2.5.1 と Python 2.6.4 がインストールされており、それぞれ と で呼び出すことができますpython。これらは 2 つの異なるフォルダーに /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"
  # python プレフィックスを書き留めます
$ ./configure --prefix=[python_prefix]
$メイク
$ make install # スーパーユーザーのアクセスが必要な場合があります

これらの手順を実行するpython2.5python、両方のバージョン (または MacPorts / Fink 経由でインストールされたバージョン) に pycairo を正しくインストールできます。

于 2010-01-11T21:22:21.243 に答える
1

ステップ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

于 2019-11-22T13:58:57.993 に答える