matplotlib.pyplot выпуск python - PullRequest
       4

matplotlib.pyplot выпуск python

4 голосов
/ 22 ноября 2011

У меня проблема с matplotlib, а точнее с pyplot.

Сразу после установки делаем

import matplotlib.pyplot

дает мне эту ошибку:

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so, 2): Symbol not found: _png_create_info_struct
  Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so
  Expected in: flat namespace
 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so

Так что я понятия не имею, что происходит. Я на Mac OS X 10.6, я установил python2.7 из образа диска и matplotlib из терминала, используя tar.gz и выполняя обычные

python setup.py build
python setup.py install

Когда начинается установка, я вижу:

BUILDING MATPLOTLIB
            matplotlib: 1.1.0
                python: 2.7 (r27:82508, Jul  3 2010, 21:12:11)  [GCC 4.0.1
                        (Apple Inc. build 5493)]
              platform: darwin

REQUIRED DEPENDENCIES
                 numpy: 1.6.1
             freetype2: 10.0.4

OPTIONAL BACKEND DEPENDENCIES
                libpng: 1.2.44
               Tkinter: no
                        * TKAgg requires Tkinter
                  Gtk+: no
                        * Building for Gtk+ requires pygtk; you must be able
                        * to "import gtk" in your build/install environment
       Mac OS X native: yes
                    Qt: no
                   Qt4: no
                 Cairo: no

OPTIONAL DATE/TIMEZONE DEPENDENCIES
              datetime: present, version unknown
              dateutil: matplotlib will provide
                  pytz: matplotlib will provide
adding pytz

OPTIONAL USETEX DEPENDENCIES
                dvipng: 1.13
           ghostscript: 8.61
                 latex: 3.1415926

Любая помощь, ребята, пожалуйста!

Приветствия

Ответы [ 5 ]

4 голосов
/ 06 июня 2013

http://fonnesbeck.github.io/ScipySuperpack/

Я боролся с этой же проблемой, и ответом было установить ScipySuperpack.Проблема (по крайней мере для меня) заключалась в том, что у меня 64-битная версия Python, а версия matplotlib, которую я извлекал из github, была 32-битной.Я клонировал репозиторий ScipySuperpack и запустил сценарий установки, и он сработал.

Никакое количество сражений с brew или портами меня никуда не привело.

2 голосов
/ 24 декабря 2013

Я просто хотел добавить несколько предложений для людей, у которых все еще могут быть проблемы. Я долго искал и пробовал много разных вещей. В конечном счете, это было одно из следующего, что позволило мне импортировать matplotlib.pyplot на Python 2.7.6 на OSX 10.6 (с ранее установленными X11 и XQuartz, возможно устаревшими):

  1. Установка pkg-info

    brew install pkg-info
    
  2. Установка libpng из исходного кода в / usr / local / lib (настроить --libdir = / usr / local)

  3. Установка XQuartz для Mac

  4. Удаление папок matplotlib из пакетов сайта (возможно, старые, неудачные попытки).

  5. Запуск

    ln -s /usr/local/opt/freetype/include/freetype2 /usr/local/include/freetype
    

Наконец,

port install py27-matplotlib

установил его, и я смог импортировать. Первоначальная ошибка у меня была

ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.6-x86_64.egg/matplotlib/_png.so, 2): Library not loaded: /opt/local/lib/libpng15.15.dylib
Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.6-x86_64.egg/matplotlib/_png.so Reason: image not found

Хотя некоторые попытки натолкнулись на эту ошибку:

In file included from src/ft2font.cpp:3:
In file included from src/ft2font.h:16:
/usr/X11/include/ft2build.h:56:10: fatal error: 'freetype/config/ftheader.h' file not found
#include <freetype/config/ftheader.h>

Извините, я не могу быть более конкретным.

2 голосов
/ 23 февраля 2013

В случае, если у кого-то есть такая же проблема, как у меня, и он находит эту ветку, вот как я ее решил.

Во-первых, я следую текущему matplotlib README.osx вместе с советом этого парня (не уверен, если это необходимо) ...

brew install freetype --universal
brew install libpng --universal
export CPPFLAGS="-I/usr/local/opt/libpng/include -I/usr/local/opt/freetype/include"
export LDFLAGS=" -L/usr/local/opt/libpng/lib  -L/usr/local/opt/freetype/lib"

Я также установил эти переменные в соответствии с рекомендациями brew.

Затем я сделал следующее (работает из директории сборки matplotlib,после сборки и установки)

drigz@mbp matplotlib 0$ find . -name _png.so
./build/lib.macosx-10.6-intel-2.7/matplotlib/_png.so
drigz@mbp matplotlib 0$ otool -L ./build/lib.macosx-10.6-intel-2.7/matplotlib/_png.so
./build/lib.macosx-10.6-intel-2.7/matplotlib/_png.so:
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 830.0.0)

Нет libpng!Плохой признак ... давайте снова посмотрим на результаты сборки ...

drigz@mbp matplotlib 0$ rm ./build/lib.macosx-10.6-intel-2.7/matplotlib/_png.so
drigz@mbp matplotlib 0$ python setup.py build
[SNIP]
c++ -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -isysroot /Developer/SDKs/MacOSX10.6.sdk -g -L/usr/local/opt/libpng/lib -L/usr/local/opt/freetype/lib -I/usr/local/opt/libpng/include -I/usr/local/opt/freetype/include build/temp.macosx-10.6-intel-2.7/src/_png.o build/temp.macosx-10.6-intel-2.7/src/mplutils.o build/temp.macosx-10.6-intel-2.7/CXX/cxx_extensions.o build/temp.macosx-10.6-intel-2.7/CXX/cxxsupport.o build/temp.macosx-10.6-intel-2.7/CXX/IndirectPythonInterface.o build/temp.macosx-10.6-intel-2.7/CXX/cxxextensions.o -L/sw/lib -L/usr/local/lib -L/usr/lib -L/usr/X11/lib -lpng14 -lz -lstdc++ -lm -o build/lib.macosx-10.6-intel-2.7/matplotlib/_png.so
ld: warning: in /sw/lib/libpng14.dylib, file was built for i386 which is not the architecture being linked (x86_64)

Он не использует правильный libpng: что предоставляет brew?

drigz@mbp matplotlib 0$ echo $LDFLAGS
 -L/usr/local/opt/libpng/lib  -L/usr/local/opt/freetype/lib
drigz@mbp matplotlib 0$ ls /usr/local/opt/libpng/lib 
libpng.a          libpng.la         libpng15.a        pkgconfig
libpng.dylib      libpng15.15.dylib libpng15.dylib

Давайте попробуем это исправитьскопировав команду, но изменив -lpng14 на -lpng15 ... (возможно, есть лучший способ не использовать неправильный, но это сработало)

drigz@mbp matplotlib 0$ c++ -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -isysroot /Developer/SDKs/MacOSX10.6.sdk -g -L/usr/local/opt/libpng/lib -L/usr/local/opt/freetype/lib -I/usr/local/opt/libpng/include -I/usr/local/opt/freetype/include build/temp.macosx-10.6-intel-2.7/src/_png.o build/temp.macosx-10.6-intel-2.7/src/mplutils.o build/temp.macosx-10.6-intel-2.7/CXX/cxx_extensions.o build/temp.macosx-10.6-intel-2.7/CXX/cxxsupport.o build/temp.macosx-10.6-intel-2.7/CXX/IndirectPythonInterface.o build/temp.macosx-10.6-intel-2.7/CXX/cxxextensions.o -L/sw/lib -L/usr/local/lib -L/usr/lib -L/usr/X11/lib -lpng15 -lz -lstdc++ -lm -o build/lib.macosx-10.6-intel-2.7/matplotlib/_png.so
drigz@mbp matplotlib 0$ python setup.py install
[SNIP]
drigz@mbp matplotlib 0$ otool -L /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so:
        /usr/local/opt/libpng/lib/libpng15.15.dylib (compatibility version 29.0.0, current version 29.0.0)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 830.0.0)
1 голос
/ 02 декабря 2011

Вы должны следовать этим инструкциям для установки Matplotlib из исходного кода на OSX: https://github.com/matplotlib/matplotlib/blob/master/README.osx

OSX немного запутан с файлами lib, но следование указаниям по ссылке должно решить любые проблемы, которые у вас возниклипоскольку это автоматически устанавливает зависимости автономным способом.

0 голосов
/ 17 мая 2013

У меня была та же проблема, что и у ОП. Я git клонировал репозиторий и «установку Python» вместо скомпилированной версии. На компиляцию ушло около 20 минут, и, похоже, теперь работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...