だから私は(コンソールで)私のvirtualenvで簡単なmatplotlibの例を実行しようとしています。コードは次のとおりです。
import matplotlib
matplotlib.use('GTKAgg')
import matplotlib.pyplot as plt
radius = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
area = [3.14159, 12.56636, 28.27431, 50.26544, 78.53975, 113.09724]
plt.plot(radius, area)
plt.show()
ただし、これを実行すると次のようになります。
ImportError:Gtk *バックエンドにはpygtkのインストールが必要です。
そして今、楽しみが始まります。私はpygtkをpipインストールしようとしましたが、スローされます:
********************************************************************
* Building PyGTK using distutils is only supported on windows. *
* To build PyGTK in a supported way, read the INSTALL file. *
********************************************************************
Complete output from command python setup.py Egg_info:
********************************************************************
INSTALL
ファイルを確認し、./configfure; make; make install
。しかしながら。 virtualenv内でこれを行う方法はよくわかりません。 virtualenv内にインストールするために、pygtkのソースをどこで解凍しますか。
トリックは、正しいパスを手動で設定してから、virtualenv内でconfigureを実行することです。これは非常に基本的なことですが、私にとってはうまくいきました。
仮想環境にpython-configをインストールし、python2.7-configにリンクします。
pip install config
ln -s /home/PATH/TO/VIRT/bin/python-config /home/PATH/TO/VIRT/bin/python2.7-config
仮想環境にcairoをインストールします。
wget http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2
tar -xf py2cairo-1.10.0.tar.bz2
cd py2cairo-1.10.0
./waf configure --prefix=/home/PATH/TO/VIRT/
./waf build
./waf install
PyGTKをインストールする
wget http://pypi.python.org/packages/source/P/PyGTK/pygtk-2.24.0.tar.bz2
tar -xf pygtk-2.24.0.tar.bz2
cd pygtk-2.24.0
export PKG_CONFIG_PATH=/home/PATH/TO/VIRT/lib/pkgconfig
./configure --prefix=/home/PATH/TO/VIRT/
make
make install
そして、それはそれを行う必要があります。 PATH/TO/VIRT /を独自のパスに置き換えるだけです。誰かがvirtualenvwrapperへのパスの追加を支援できると確信していますか?
これは私がしました
Sudo apt-get install python-gtk2
いくつかの調査で既にインストールされていることがわかりました。仮想環境を作成すると、いくつかのリンクが欠落していることがわかりましたので、この投稿に出会いました: サイトパッケージのないUbuntuのVirtualenv 。
私はそれを読み、セットアップに提供されたコマンドを次のように調整しました。
まず、virtualenvに変更して、それをアクティブにしました
source bin/activate
次に、virtualenv内のlib/python2.7フォルダーに変更しました。
cd lib/python2.7
その後、次のコマンドを実行しました。
$ ln -s /usr/lib/python2.7/dist-packages/cairo/
$ ln -s /usr/lib/python2.7/dist-packages/pygtk.py
$ ln -s /usr/lib/python2.7/dist-packages/pygtk.pth
$ ln -s /usr/lib/python2.7/dist-packages/gtk-2.0/
最後に、「python」と入力して実行しました:
>>> import pygtk
エラーは発生しなかったため、仮想環境で使用できるようになりました。
Intel Core i5でUbuntu 14.04(64ビット)を使用しています。
pygtk
はPyPIからvirtualenvにインストールできないため、
pip install pygtk
ダウンロードはするがインストールはしない。 tarファイルをダウンロードし、それらをコンパイルしてインストールするというフープを実行できますが、システムにインストールされている関連パッケージへのリンクを作成して、virtualenvをアクティブにして ruamel.venvgtk
で十分です:
pip install ruamel.venvgtk
これは私自身の仕事のための恥知らずなプラグインです。ここでの他のソリューションはどれも、例えばtox
によって行われます。
の中に setup.py
以下のパッケージが発生します。
try:
import gtk
except ImportError:
print('--------------')
import subprocess
instdir = subprocess.check_output([
'/usr/bin/python',
'-c',
'import os, pygtk; print os.path.dirname(pygtk.__file__)',
]).strip()
for dst_base in sys.path:
if dst_base.strip():
break
for d in [
'pygtk.pth',
'pygtk.py',
'gtk-2.0',
'gobject',
'glib',
'cairo',
]:
src = os.path.join(instdir, d)
dst = os.path.join(dst_base, d)
if os.path.exists(src) and not os.path.exists(dst):
print('linking', d, 'to', dst_base)
os.symlink(src, dst)
つまり、システムのpythonはpygtkのインストール場所を尋ねられます(Linux Mint 17.1では/usr/lib/python2.7/dist-packages
)、アクティブ化されたpythonの最初のパス(ゼロ以外の長さ)へのリンクが設定されます。
私の経験(Posixシステムのみ)では、一部のパッケージをvirtualenv
にインストールできないことがありました(自分でコンパイルする必要があるなどだと思います)。後で個別のパッケージにインストールできる場合があります。
この状況に対処できる1つの方法は、パッケージをコンパイルして別の場所にインストールし、サイトパッケージパスを追加してそのパッケージをロードするようにvirtualenvを構成することです。詳細については documentation をご覧ください。 (または、環境をアクティブにするたびに環境パスを変更するboostrapスクリプトをセットアップします( virtualenvwrapper
で簡単に実行できます)
私は同じ問題を抱えていますが、python-gtk2 debianパッケージをインストールして修正しました