Я хотел бы иметь различные виртуальные среды на своем компьютере, некоторые из них запускают python 2.7 и другие с python3, а некоторые из них должны иметь полную поддержку matplotlib, что достигается с помощью --system-syte-packages при создании виртуальной среды (см. matplotlib faqs).
Следовательно, мне нужно biuld зависимости matplotlib для обеих версий python. Я начал с:
sudo apt-get build-dep python-matplotlib
Кто правильно установил все, а затем я попытался запустить:
sudo apt-get build-dep python3-matplotlib
Что ничего не делало, оно печатало только следующие сообщения:
Reading package lists... Done
Picking 'matplotlib' as source package instead of 'python3-matplotlib'
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 to upgrade, 0 to newly install, 0 to remove and 6 not to upgrade.
Как это можно решить?
Я могу установить matplotlib в виртуальной среде python3 без каких-либо проблем, однако он не поддерживает многие из них pip или apt-get. бэкендов. Например:
>>> import matplotlib
>>> matplotlib.use('GTK')
>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
File "/home/oriol/venvs/pic_python3.5/lib/python3.5/site-packages/matplotlib/backends/backend_gtk.py", line 17, in <module>
import gobject
ImportError: No module named 'gobject'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/oriol/venvs/pic_python3.5/lib/python3.5/site-packages/matplotlib/pyplot.py", line 115, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/home/oriol/venvs/pic_python3.5/lib/python3.5/site-packages/matplotlib/backends/__init__.py", line 62, in pylab_setup
[backend_name], 0)
File "/home/oriol/venvs/pic_python3.5/lib/python3.5/site-packages/matplotlib/backends/backend_gtk.py", line 21, in <module>
raise ImportError("Gtk* backend requires pygtk to be installed.")
ImportError: Gtk* backend requires pygtk to be installed.
Хотя pip freeze внутри виртуальной среды включает pygobject==3.20.0. Я думал, что это pygobject может быть python2, однако sys.path в виртуальной среде:
['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/home/oriol/venvs/pic_python3.5/lib/python3.5/site-packages', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']