Проблемы pylab с EPD-версией ipython

Недавно я перешел на версию ipython для EPD (у меня 64-битная студенческая версия), и теперь у меня проблемы с pylab. Когда я набираю «import pylab», я получаю следующую ошибку

ImportError                               Traceback (most recent call last)
<ipython-input-1-0c66bb86b884> in <module>()
----> 1 import pylab

/Library/Python/2.7/site-packages/matplotlib-1.1.0-py2.7-macosx-10.7-intel.egg/pylab.py in <module>()
----> 1 from matplotlib.pylab import *
      2 import matplotlib.pylab
      3 __doc__ = matplotlib.pylab.__doc__

/Library/Python/2.7/site-packages/matplotlib-1.1.0-py2.7-macosx-10.7-intel.egg/matplotlib/pylab.py in <module>()
    219      silent_list, iterable, dedent
    220 
--> 221 from matplotlib import mpl  # pulls in most modules
    222 
    223 from matplotlib.dates import date2num, num2date,\

/Library/Python/2.7/site-packages/matplotlib-1.1.0-py2.7-macosx-10.7-intel.egg/matplotlib/mpl.py in <module>()
      1 from matplotlib import artist
----> 2 from matplotlib import axis
      3 from matplotlib import axes
      4 from matplotlib import cbook
      5 from matplotlib import collections

/Library/Python/2.7/site-packages/matplotlib-1.1.0-py2.7-macosx-10.7-intel.egg/matplotlib/axis.py in <module>()
      8 from matplotlib.artist import allow_rasterization
      9 import matplotlib.cbook as cbook
---> 10 import matplotlib.font_manager as font_manager
     11 import matplotlib.lines as mlines
     12 import matplotlib.patches as mpatches

/Library/Python/2.7/site-packages/matplotlib-1.1.0-py2.7-macosx-10.7-intel.egg/matplotlib/font_manager.py in <module>()
     50 import matplotlib
     51 from matplotlib import afm
---> 52 from matplotlib import ft2font
     53 from matplotlib import rcParams, get_configdir
     54 from matplotlib.cbook import is_string_like

ImportError: dlopen(/Library/Python/2.7/site-packages/matplotlib-1.1.0-py2.7-macosx-10.7-intel.egg/matplotlib/ft2font.so, 2): Symbol not found: _FT_Attach_File
  Referenced from: /Library/Python/2.7/site-packages/matplotlib-1.1.0-py2.7-macosx-10.7-intel.egg/matplotlib/ft2font.so
  Expected in: flat namespace
 in /Library/Python/2.7/site-packages/matplotlib-1.1.0-py2.7-macosx-10.7-intel.egg/matplotlib/ft2font.so

Мне нужно, чтобы pylab/matplotlib жил, так что это плохо. Интересно, что когда я дважды щелкаю PyLab (64-bit).app в моей папке /Applications/Enthought/, он открывает терминал, и pylab работает нормально, он просто не работает, когда я вызываю его из командной строки или когда я использую блокнот. Если бы я мог заставить python использовать версию pylab, которую я получил от EPD, тогда все было бы хорошо, но по умолчанию он импортирует эту вещь из /Library/Python/2.7/site-packages/matplotlib-1.1.0-py2.7 -macosx-10.7-intel.egg/matplotlib/, где что-то не так с ft2font.so.


person arwright3    schedule 21.02.2013    source источник
comment
Не могли бы вы открыть терминал и опубликовать вывод echo $PATH и which ipython?   -  person Tony S Yu    schedule 22.02.2013


Ответы (1)


Похоже на конфликт между вашим питоном EPD и пакетами, которые вы установили с питоном Apple.

1) Как указывает tsyu80, ваш PATH может указывать вам на python Apple, поэтому вы можете запускать его ipython, а не EPD. Если это так, добавление следующих строк в ваш файл ~/.bash_profile должно исправить это (хотя эти строки уже должны были быть добавлены во время установки EPD).

# Setting PATH for EPD-7
PATH="/Library/Frameworks/EPD64.framework/Versions/Current/bin:${PATH}"
export PATH

Обратите внимание, что вам необходимо создать новый сеанс терминала, чтобы эти настройки вступили в силу.

2) Даже если вы запустите (i)python EPD, он может импортировать пакеты, установленные в Apple. См. https://support.enthought.com/entries/22094157-OS-X-Conflict-with-installed-packages-in-earlier-Python-installation

3) После решения этой проблемы обязательно обновите ipython до последней версии: https://support.enthought.com/entries/22415022-Using-enpkg-to-update-EPD-packages

person Jonathan March    schedule 22.02.2013
comment
Теперь это работает! Мой .profile на самом деле имел PATH=/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}, а не PATH=/Library/Frameworks/EPD64.framework/Versions/Current/bin:${PATH}. Как только я изменил это, все заработало просто отлично. Спасибо за вашу помощь! - person arwright3; 22.02.2013
comment
@user2096767 user2096767 Если это решит вашу проблему, рассмотрите возможность пометить ответ как принятый, чтобы он не отображался в разделе «Неотвеченные» StackOverflow. Ваше здоровье! - person Tony S Yu; 22.02.2013