6

brew を使用して python 2.7.3 のフレームワーク ビルド (Mac OSX Lion) に py2cairo をインストールしようとしています。私はこれまで失敗してきました。

まずは簡単にやってみた

brew install py2cairo

これは、Python の非フレームワーク ビルドでのみ機能するようです。フレームワークでこれを行うと、互換性のないバイナリ エラーで cairo をインポートするとすぐに python が失敗します。

次に、github から取得して次のコマンドを発行して、自分でビルドしようとしました。

python waf configure

これは次の場合に失敗します。

Checking for library python2.7           : not found 
Checking for library python2.7           : not found 
Checking for library python2.7           : not found 
Checking for library python27            : not found 
Checking for program python2.7-config    : /usr/local/Cellar/python/2.7.3/bin/python2.7-   config 
Checking for header Python.h             : Could not find the python development headers 
The configuration failed
(complete log in /Users/tobin/tmp/py2cairo/build_directory/config.log)

私はすべてを試しました: How to install PyCairo 1.10 on Mac OSX with default pythonしかし、これはどれも役に立ちませんでした。

これはフレームワーク ビルドであるため、python2.7 ライブラリとヘッダー ファイルが見つからない可能性があるようです。それは可能ですか?醸造式を見ていましたが、ビルド時にフレームワークのビルドが --enable-share に設定されていないようです。それがここに関連しているかどうかはわかりませんが、おそらく1つの可能性があります。

他の誰の洞察も素晴らしいでしょう。前もって感謝します。

アップデート:

py2cairo をビルドできないのは、gcc による「-march=native」フラグの使用に関係していることを発見しました。Mac OSX 上の gcc (4.2.1) には、これに関する問題があります。次に、gcc と python を再インストールしました。その後、waf を使用して py2cairo をビルドすると、「-march=core2」が取得され、すべてがビルドされました。

残念ながら、まだすべてが良いわけではありません。(上記のように)brew バージョンから取得したビルドから cairo をインポートすると、同じエラーが発生します。正確なエラー メッセージは次のとおりです。

>>> import cairo
Fatal Python error: Interpreter not initialized (version mismatch?)
Abort trap: 6

そしてpythonが終了します。

この問題は、Python のフレームワーク ビルドに関連しているように思われます。フレームワークをビルドせずにテストしたところ、問題なく動作しました。

4

1 に答える 1

1

この質問をぶら下げたままにしないように... 私は自分の決意と学習ポイントをフォローアップしたいと思いました:

  1. 上記のように、私のバージョンの OSX と -march=native という gcc コンパイル フラグとの非互換性がありました。それ以降のバージョンでは、-march=core2 として登場しました。これは、マシンをクリーンアップした後、コンパイラ/バージョンの変更でほぼ修正されました。

  2. 何年もの間、私はさまざまな MAC OSX インストールのすべてをかなり混乱させ、「移行オプション」を受け入れてきました。2 台のマシンの前に、バージョン 2.4 と 2.5 の Python バイナリをインストールしました。その後、さまざまな理由で最終的に macports に移行しました。その後、最終的に自家醸造に行きました。自作に行ったとき、手作業でクリーンアップしようとしました(もちろん、これは難しい場合があります)。さらに悪いことに、過去 6 年間に新しい Mac (2 回) を入手するたびに、「移行インストール」オプションを選択しましたが、これにより混乱が進み、事態が悪化しています。そのため、さらに調査を開始すると、さまざまなバージョンの python がインストールされていました。mac-native、python-native、mac ポート、自作、そしておそらく他のシステムもインストールされていました。

私は最終的に、古いpythonインストールの束を手動で削除し、python 2.7の新しいvirtualenvと自作インストールからやり直すことでこれを解決しました。

警告: これが最も賢明な方法だとは思いません。OSX Lion にネイティブに付属していると思われる Python のバージョン (2.6 だと思います) を削除しないように注意しましたが、以前の Mac にインストールされた Python に依存していた可能性のある他のものにどのように影響する可能性があるかは明確ではありません。最終的に、2.3、2.4、および 2 つの異なる 2.5 を削除し、いくつかの場所にあるさまざまなリンクも削除しました。何という混乱!自分が何をしているのかを完全に確信していない限り(私はそうではありませんでした)、私はこのアプローチを提案しません。私は基本的に、収集した6年間のpythonインストールクラッドを殺そうとしていました。

安全のために、OSX Lionの新規インストールから始めて、自作バージョンを追加してそこから移動する必要があったでしょう。私はおそらく近い将来これを行うでしょう。

于 2012-06-13T15:51:21.980 に答える