2009-09-30 14 views
11

私はOSXの下にをインストールしようとしています(cairo graphics libraryのPythonバインディング)。osxにpycairoをインストールするには?

私は

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 

は、だから私はカイロのサイトに行って、カイロの最新パッケージ(1.8.8)をダウンロードし、また何かの最新のパッケージpixman(両方のソースパッケージ - osxバイナリが見つかりませんでした)

解凍された両方の、それぞれのディレクトリにあります。 はpixmanのために、定期的な./configure ; make ; sudo make installはちょうどカイロ用 を見つける働いていた、./configureをは動作しますが、失敗しました作るように見えた:

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

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

なぜ、私はソフトウェアライブラリを「うまくいく」OSで動かすために苦労しなければならないのですか?なぜダーウィンはもっとLinuxに似ていないのですか?

+0

更新:私はpixmanディレクトリからすべての.hファイルをcairoにcpしました。醜いブルートフォースのことですが、うまくいくように見えました。 sudo make install 'は正常に動作するようです。 pyairoをインストールしようとすると、依然として "cairo> = 1.8.8 'が要求されますが、cairoのバージョンは1.0.4"です。それは私がカイロ1.0.4を持っていると思って、新しいものを無視します。どんな考え?どのように私はそれを修正することができます? – Yoav

答えて

6

私はそれを解決した。将来の参照のためにここにソリューションを置くと、誰かを助けるかもしれません。

基本的には、ports/finkシステム全体がちょっと混乱していて、osxは実際にlinux-yの世界ではうまくいきません。

だから、私はOSX上pycairoをインストールするために必要な手順は以下の通りであった。pixman、カイロの最新のソースバージョン

  • ダウンロード、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 
    

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

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

    この後、まだPYCAIRO_DIRで、実行します。

    python setup.py install 
    

これが何をすべきそれ...

+1

私はmacports finkとあなた自身のコードを一緒に混ぜ合わせているので問題があると思います - これらのうちの1つだけを使用してください;)これらはそれぞれ、Linix自身のパッケージシステムに相当します。 私が言うのは、/ opt/local/binはMacportsであり、デフォルトでは/ usr/local/binになるというわけではないということです。 – Mark

3

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

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

+0

Here(http://stackoverflow.com/questions/1500866/)ハウツーインストール - pycairo-on-osx)は、同様の問題を抱えている別の人です –

+0

あなたが気をつけなければ、easy_installを使用すると、アップルが提供するpythonを画像に追加することによってさらに複雑になる可能性があります。根本的な問題を解決する。 –

+0

私はAkuseteがPython2.6.4フレームワークビルド(彼の第1ステップ)からpycairoを使いたかったことを意味しました。もし彼がその仕事を得るなら、彼はすべてのMacPortsのpythonのものを捨てて、将来この問題を避けることができます。しかし、すべてのMacPortsソリューションも良いです。それを好む理由がありますか? –

7

さまざまなインストールオプションが混在しているようです。 MacPortsパッケージシステムのport installコマンドは、特定のパッケージに必要なすべての依存関係を自動的にプルする必要があります。そのため、最上位のプロジェクトからトリックを開始する必要があります。 Pythonパッケージの場合、MacPortsには現在、一般的な規則があります:py-で始まるパッケージはPython 2.4用、py25-のパッケージは2用です。5、およびpy26-です。現在、py-cairo,py25-cairo、およびpy26-cairoのパッケージがMacPortsで利用可能です。

py-cairoを選択すると、python2.4バージョンが選択され、MacPortsがpython2.4をビルドしてインストールしていることがわかります(/opt/local/bin/python2.4にリンクされています)。起動すると、おそらくそこにカイロを輸入することができます。今ではになっていても問題ありませんが、Python 2.4はかなり古く、サポートされていません。ちょうど始まったばかりのPython 2.6の2つのバージョンから始めるほうが良いかもしれません。そのためには、あなたがする必要がある必要がありますすべてがある:あなたが/opt/local/bin/python2.6から実行することができます欠落している依存関係、主にMacPortsのののpython2.6に持参してください

sudo port install py26-cairo 

。シェル起動スクリプトの$PATH(おそらく.bash_profile)を変更して、/opt/local/binを検索パスの早い方に変更したい場合があります。

カイロとそのPythonバインディングをインストールすることはかなり複雑に思えるので、このために完全なMacPortsソリューションを使用することに固執するのは、より簡単でより良いはずです。つまり、不要なPythonインスタンスを不必要に(無害に)インストールしたことになります。しかし、あなたは少し物事をクリーンアップしたいならば、あなたは簡単にMacPortsののpython24を削除することができます:完全python.orgインストールのpythonを取り除く

sudo port uninstall py-cairo python24 

ことは、より複雑です。私はプロセスhereについて説明しました。しかし、あなたがあなたの道を真っ直ぐに保つ限り、どちらかを削除する必要はありません。

+0

私はあなたの提案を試してみましたが、正常に動作しました。どうもありがとうございました。私の主な問題は、私が一般的にmacportsとmacosの仕組みや慣習を知らないことだったと思います。 私はmacports.orgからMacPortsの紹介やドキュメントを読みましたが、私は、バージョン番号がタイトルに使用された実現したことがない(私はそれが何らかの形で、最新バージョンか何かに解決使用と仮定) – Akusete

+0

はい、MacPortsのPythonの命名規則はかなり混乱しています。彼らがpy-の代わりにpy24-を使って始めたのであれば、そうではないかもしれません。それがうまくいってうれしい! –

+0

'cairo.HAS_QUARTZ_SURFACE'はどのようにして1を得るのですか? – vy32

2

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

私は現在、自分のマシンにPython 2.5.1とPython 2.6.4をインストールしています。これはそれぞれpython2.5pythonで呼び出すことができます。 tarボールからpycairo 1.8.8をコンパイルするとき、私は同様の問題に実行していた /System/Library/Frameworks/Python.framework/Versions/2.5/Library/Frameworks/Python.framework/Versions/2.6

:彼らは、二つの異なるフォルダに住んでいます。この場合のINSTALLファイルは、潜在的なバージョンの競合を避けるための正しい指示が含まれているため、あなたの友人です。パッケージが正しいフォルダにインストールされるように、基本的に正しいプレフィックスを指定する必要があります。 python2.5pythonと、これらの命令を実行する

 
$ 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 

あなたは正しく、両方のバージョンのpycairoをインストールすることができます(またはMacPortsの/フィンク経由でインストールされているすべてのバージョンのため)。

8

私はthis命令が非常に役に立ち、ずっと混乱しないことを発見しました。私はヨセミテにいて、とてもうまく働いてくれました。この命令では、自作を使用してインストールします。すでに自作を持っているのであれば、これらの2つのコマンドが助けになるはずです:非自作用

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

は、Pythonをインストールし、この命令はpycairoを見つけるために、PYTHONPATHを設定することをお勧めします。 .bashrc/.profile /にPYTHONPATHを設定することができます。次のようなもの:

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

私は個人的にこの最後の部分を使用する必要はありませんでしたが、それはあなたを助けるかもしれません。

+0

リンクだけを含む回答は[悪い習慣とみなされます](http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers)。答えがそれ自身の上に立つことができるように、ここに内容を要約してください(コピー/貼り付けはしないでください)。あなたがしない場合は、特にリンクが死ぬ場合は、あなたの答えが削除されるリスクを実行します。 –

+0

python 3を使用している場合は、代わりに "brew install py3cairo"を使用できます。 –

関連する問題