web-dev-qa-db-ja.com

virtualenvにpycairoをインストールする

Djangoプロジェクトで使用するvirtualenvにpycairoをインストールしようとしました。パッケージを見つけてダウンロードするpip install pycairo==1.10.0コマンドを実行しましたpip install pycairoなどの他のコマンドですが、パッケージのインストールを開始するとエラーがスローされます。

ログは次のとおりです。

Downloading/unpacking pycairo==1.10.0
  Running setup.py Egg_info for package pycairo
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
    IOError: [Errno 2] No such file or directory:
'/home/radu/Desktop/djangos/workout/venv/build/pycairo/setup.py'
Complete output from command python setup.py Egg_info:
Traceback (most recent call last):

File "<string>", line 14, in <module>

IOError: [Errno 2] No such file or directory:
'/home/radu/Desktop/djangos/workout/venv/build/pycairo/setup.py'

----------------------------------------
Command python setup.py Egg_info failed with error code 1 in 
/home/radu/Desktop/djangos/workout/venv/build/pycairo
Storing complete log in /home/radu/.pip/pip.log

何をすべきかについてのヒントを教えてください。パッケージのsetup.pyファイルを作成してからインストールしようとする必要がありますか? (それが解決策であるかどうかはわかりませんが、私はまだ何ができるかを理解しようとしています)。

前もって感謝します!

32
Radu Gheorghiu

皆さん、良いニュースです!

Cairocffiをリリースしました: http://packages.python.org/cairocffi/

Virtualenvにpipをインストールし、Python 2と3、PyPyで実行します。

pip install cairocffi

あなたのコードで:

import cairocffi as cairo
# Enjoy the same API as Pycairo.

フィードバックを歓迎します。 (ただし、 issue tracker はこちらよりも良いチャンネルかもしれません。)

66
Simon Sapin

Py2cairoはpipを使用してうまくインストールできませんが、ディストリビューションのINSTALLファイルにあるビルド手順を使用して、py2cairoを仮想環境にインストールできます。

パッケージをビルドするには、cairo-dev/cairo-develパッケージがインストールされている必要があります。

以下を実行して、仮想環境にインストールします。

  1. py2cairoディレクトリにダウンロード、解凍、およびcdします
  2. 仮想環境をアクティブ化する
  3. 標準のビルド手順に従う

./waf configure --prefix=$VIRTUAL_ENV

./waf build

./waf install

24
tgmauch

pycairoは現在、pip/distutilsによるインストールをサポートしていません。プロジェクトの install docs は、wafまたはautotoolsの使用を指示します。

Virtualenvでpycairoを使用するには、次のことが必要です。

  • できればディストリビューションのパッケージを通じて、pycairoをシステム全体にインストールしてください
  • 次に、次のいずれか:
    1. --system-site-packagesオプションを使用してvirtualenvを作成するか、事後のlib/pythonX.Y/no-global-site-packages.txtファイルを削除します。
    2. または、cairoパッケージ(_cairo.soを含むディレクトリ)にシンボリックリンクを追加します。このようなもの:
       ln -s /usr/lib/python2.7/site-packages/cairo ./venv/lib/python2.7/site-packages
      

もちろん、1。システム全体にインストールされた他のパッケージからvirtualenvを分離しても利益が得られないという欠点があります。

11
Simon Sapin

Pycairo(Python 2.7)の場合)をHomebrewおよびvirtualenv --no-site-packagesと組み合わせて使用​​しようとする場合は、このWorked For Me:

  1. brew install py2cairo

  2. 次に、Homebrewがインストールしたパスを見つけます。次のようになります。

    ls -l /usr/local/lib/python2.7/site-packages/cairo/
    total 24
    lrwxr-xr-x  1 anentropic  admin   80 10 Jun 14:26 __init__.py -> ../../../../Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/__init__.py
    lrwxr-xr-x  1 anentropic  admin   78 10 Jun 14:26 _cairo.so -> ../../../../Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/_cairo.so
    
  3. 次のようなシンボリックリンクのベースでパスを見つけたい:
    /usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages

  4. 次に、virtualenvサイトパッケージに.pthファイルを作成します。
    echo "/usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages" > venv/lib/python2.7/site-packages/cairo.pth

(幸運のため、virtualenvを非アクティブ化および再アクティブ化したい場合があります)

3
Anentropic

cairocffivirtualenvインストールが機能せず、python-dev libffi-devは使用できません(ArchLinux)環境変数の設定PKG_CONFIG_PATH=/usr/lib/libffi-3.2.1/include動作します。

1
Anna Avina