Я хочу использовать Matplotlib в OSX LION - PullRequest
0 голосов
/ 17 декабря 2011

Я установил matplotlib из macports, и версия python 2.7.1.

$ sudo port install py27-matplotlib py27-matplotlib-basemap

Я написал пример программы ниже.

#!/usr/bin/python
# -*- coding: utf-8 -*-

from pylab import *
plot([1,2,3])
show()

Но это не сработало корректно с журналом ошибок "нет модуля с именем pylab".

И я попробовал easy_install.

$ sudo easy_install matplotlib

В этом случае моя программа работала без ошибок.

В чем разница между этими двумя случаями (macports и easy_install)?

Я думаю, что версия matplotlib одинакова в двух случаях.

В случае macports, я должен переопределить include-путь?

Не могли бы вы помочь мне?

Ответы [ 2 ]

4 голосов
/ 17 декабря 2011

Для обеспечения совместимости среды пакеты MacPorts Python автоматически устанавливают MacPorts Python.По умолчанию вы можете вызвать его через /opt/local/bin/python2.7.И там вы найдете MacPorts с установленным matplotlib и др./usr/bin/python вызовет предоставленную Apple систему Python 2.7.1, и когда вы запустили sudo easy_install, вы использовали предоставленную Apple команду easy_install, связанную с системным Python.Это означает, что теперь у вас установлено два экземпляра Python 2.7, каждый с отдельной версией matplotlib.В этом нет ничего плохого, но вы, вероятно, хотите придерживаться одного или другого.Вы можете сделать MacPorts Python 2.7 настройками по умолчанию, указав в пути SHELL /opt/local/bin до /usr/bin и используя команду MacPorts port select python python27.

0 голосов
/ 17 декабря 2011

Как упомянул Нед Дейли, проблема вызвана тем, что MacPorts устанавливает отдельный Python, хотя OS X поставляет свою собственную версию.

Я бы предложил вам использовать Homebrew вместо MacPorts дляизбегать подобных проблем.Homebrew будет использовать доступный пакет на OS X, когда это возможно.

Другое предложение заключается в том, что лучше использовать pip для управления пакетом Python, который является заменой для easy_install и поддерживаетудаление пакетов.Преимущество использования системы упаковки (например, MacPorts, apt в Debian) для управления пакетом Python заключается в том, что они могут решить эту зависимость, если пакет Python зависит от других библиотек C.Но в случае, если некоторые пакеты Python не включены в MacPorts или apt, вам необходимо разрешить значение easy_install или pip.И обычно не рекомендуется использовать две системы упаковки для одновременного управления пакетом Python.

...