Установка matplotlib и его зависимостей без привилегий root
Я хочу использовать matplotlib на сервере, где у меня есть учетная запись /myhome
без привилегий root.
Я загрузил источники matplotlib и попытался установить его с помощью distutils с помощью пользователя sheme, скажем python setup.py install --user
, но он вернул следующее сообщение:
============================================================================
Edit setup.cfg to change the build options
BUILDING MATPLOTLIB
matplotlib: yes [1.3.1]
python: yes [2.7.3 (default, Jan 2 2013, 13:56:14) [GCC
4.7.2]]
platform: yes [linux2]
REQUIRED DEPENDENCIES AND EXTENSIONS
numpy: yes [version 1.6.2]
dateutil: yes [using dateutil version 1.5]
tornado: yes [tornado was not found. It is required for the
WebAgg backend. pip/easy_install may attempt to
install it after matplotlib.]
pyparsing: yes [pyparsing was not found. It is required for
mathtext support. pip/easy_install may attempt to
install it after matplotlib.]
pycxx: yes [Couldn't import. Using local copy.]
libagg: yes [pkg-config information for 'libagg' could not
be found. Using local copy.]
freetype: no [pkg-config information for 'freetype2' could
not be found.]
png: yes [pkg-config information for 'libpng' could not
be found. Using unknown version.]
OPTIONAL SUBPACKAGES
sample_data: yes [installing]
toolkits: yes [installing]
tests: yes [nose 0.11.1 or later is required to run the
matplotlib test suite]
OPTIONAL BACKEND EXTENSIONS
macosx: no [Mac OS-X only]
qt4agg: yes [installing, Qt: 4.8.2, PyQt4: 4.9.3]
gtk3agg: yes [installing, version 3.2.4]
gtk3cairo: yes [installing, version 3.2.4]
gtkagg: no [The C/C++ header for gtk (gtk/gtk.h) could not
be found. You may need to install the development
package.]
tkagg: no [TKAgg requires Tkinter.]
wxagg: no [requires wxPython]
gtk: no [The C/C++ header for gtk (gtk/gtk.h) could not
be found. You may need to install the development
package.]
agg: yes [installing]
cairo: yes [installing, version 1.8.8]
windowing: no [Microsoft Windows only]
OPTIONAL LATEX DEPENDENCIES
dvipng: yes [version 1.14]
ghostscript: yes [version 9.05]
latex: yes [version 3.1415926]
pdftops: yes [version 0.18.4]
============================================================================
* The following required packages can not be built:
* freetype
Казалось, что пакет "freetype" отсутствует, поэтому я загрузил его источники, и я обнаружил, что он может быть установлен в определенном месте, запустив:
./configure --prefix=/myhome/somedir
make
make install
Мой вопрос: , где я могу установить freetype, чтобы он мог быть обнаружен distutils?
Моя первая мысль заключалась в том, чтобы установить его в /myhome/.local
, потому что именно там distutils устанавливает модуль при использовании опции --user
.
К сожалению, при этом я все еще получил то же сообщение, что и выше.
Я попытался сделать что-то более сложное, создав виртуальную среду с помощью пакета virtualenv:
virtualenv /myhome/venv/
Затем я установил freetype в myhome/venv/
и, наконец, я запустил distutils в этой виртуальной среде, но он снова дал мне такое же сообщение.
Спасибо, что помогли, и, конечно же, я не буду просить мой системный администратор установить matplotlib для меня.
PS: что-то определенно не связано с моей проблемой, но, возможно, стоит отметить: я устанавливаю пакет freetype с помощью ./configure --prefix=/myhome/somedir --without-png
. Без опции --without-png
я получаю следующую ошибку:
checking for libpng... configure: error: `libpng-config' not found;
either set the LIBPNG_CFLAGS and LIBPNG_LDFLAGS environment variables,
or pass `--without-png' to the `configure' script.
Ответы
Ответ 1
Из того, что я вижу, настройка matplot в конечном итоге вызовет приглашение с помощью
pkg-config freetype2 --modversion
чтобы попытаться найти пакет. Похоже, что этот вызов терпит неудачу.
Попытайтесь выяснить, какая ошибка дает вам эта команда и сообщит нам. Подробнее о pkg-config см. http://people.freedesktop.org/~dbn/pkg-config-guide.html. В некоторых системах возможно, что pkg-config не установлен.
UPDATE:
Из того, что я могу получить из файлов установки matplotlib, он будет искать ft2build.h в подкаталогах include, lib и lib64 в каталогах /usr/local и в /usr.
Вы можете найти необходимые исходные файлы для freetype в http://www.freetype.org/developer.html (вам понадобятся файлы .h, но это не будет больно получить все из них).
Если у вас нет доступа к каким-либо из этих каталогов, вы можете добавить каталоги для поиска, отредактировав запись каталогов в файле setup.cfg для matplotlib.
Если вы не сможете отредактировать файл setup.cfg, вы также можете попробовать отредактировать файл setupext.py в каталоге matplotlib напрямую. В строке 95 есть функция get_base_dirs, вы можете отредактировать эту функцию, чтобы возвращать дополнительные каталоги для ее поиска (она будет искать подкаталоги include, lib и lib64 в этих добавленных каталогах).
Ответ 2
Основываясь на некоторых предложениях здесь и других инструкциях в Интернете, для меня работал следующий рецепт:
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz
tar xzf freetype-2.5.3.tar.gz
cd freetype-2.5.3
./configure --prefix=/myhome/local --without-png
make && make install
export PKG_CONFIG_PATH=/myhome/local/lib/pkgconfig
pip install matplotlib --upgrade
Ответ 3
Вы должны установить системные требования, и это не связано с python, pip, virtualenv.
Чтобы установить требования, обратитесь к этому.
fooobar.com/questions/45037/...
В двух словах,
Ubuntu/Debian
apt-get install libfreetype6-dev
Redhat
yum -y install freetype-devel
OSX
brew install freetype
После установки freetype попробуйте
pip install matplotlib
Ответ 4
Может быть, очень поздно, но я столкнулся с такой же проблемой при установке matplotlib
внутри virtualenv
, созданного с помощью virtualenvwrapper
.
Эти инструкции работали для меня:
http://newcoder.io/dataviz/part-0/
Ответ 5
У меня была такая же ошибка при установке matplotlib. Установка pkg-config работала для меня. Попробуйте следующую команду для ubuntu:
sudo apt-get install pkg-config
Ответ 6
В частности, для mac:
У меня была аналогичная проблема при установке matplotlib. Следуйте этим инструкциям, и все готово:
-
Установите python3 с помощью brew. (Игнорируйте этот шаг, если у вас уже есть)
Примечание: Установить brew.
brew install python3
-
Установить freetype:
brew install freetype
-
Теперь установите pkg-config с помощью pip3:
brew install pkg-confi
-
Наконец, установите matplotlib:
sudo pip3 install matplotlib