Установка matplotlib и его зависимостей без прав root

Я хочу использовать matplotlib на сервере, где у меня есть аккаунт /myhome без корневых привилегий.

Я скачал исходники 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.

6 ответов

Вы должны установить системные требования, и это не относится к python, pip, virtualenv.

Чтобы установить требования, пожалуйста, обратитесь к этому. /questions/30189261/ubuntu-vyipolnyayuschaya-pip-install-vyidaet-oshibku-sleduyuschie-neobhodimyie-paketyi-ne-mogut-byit-sobranyi-freetype/30189271#30189271

В двух словах,

Ubuntu / Debian

apt-get install libfreetype6-dev

Красная шляпа

yum -y install freetype-devel

OSX

brew install freetype

После установки freetype попробуйте

pip install matplotlib

Основываясь на некоторых предложениях здесь и других инструкциях в Интернете, у меня сработал следующий рецепт:

 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

Из того, что я вижу, установка matplot в конечном итоге вызовет приглашение с

pkg-config freetype2 --modversion 

попытаться найти пакет. Кажется, что это терпит неудачу на этом вызове.

Попробуйте узнать, какую ошибку выдает эта команда, и сообщите нам. См. http://people.freedesktop.org/~dbn/pkg-config-guide.html для получения дополнительной информации о pkg-config. На некоторых системах возможно, что pkg-config не установлен.

ОБНОВЛЕНИЕ: Из того, что я могу получить из установочных файлов 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 в этих добавленных каталогах).

Может быть очень поздно, но я столкнулся с той же проблемой при установке matplotlib внутри virtualenv создан с использованием virtualenvwrapper,

Эти инструкции работали для меня: http://newcoder.io/dataviz/part-0/

Я получил ту же ошибку при установке matplotlib. Установка pkg-config у меня сработала. Попробуйте следующую команду для Ubuntu:

sudo apt-get install pkg-config

В частности, для Mac: у меня была похожая проблема при установке matplotlib. Следуйте этим инструкциям, и все готово:

  1. Установите python3, используя brew. (Игнорируйте этот шаг, если он у вас уже есть) Примечание. Для установки brew.

    brew install python3
    
  2. Установите freetype:

    brew install freetype
    
  3. Теперь установите pkg-config, используя pip3:

    brew install pkg-confi
    
  4. Наконец, установите matplotlib:

    sudo pip3 install matplotlib
    
Другие вопросы по тегам