Я установил matplotlib с помощью установщика образа диска Mac для MacOS 10.5 и Python 2.5. Я установил numpy, затем попытался импортировать matplotlib, но получил эту ошибку: ImportError: numpy 1.1 or later is required; you have 2.0.0.dev8462. Кажется, что версия 2.0.0.dev8462 будет позже, чем версия 1.1, но я предполагаю, что matplotlib перепутали с ".dev8462" в версии. Есть ли способ обойти это?

1
None 14 Июн 2010 в 08:59

2 ответа

Лучший ответ

Вот проблемный код, расположенный в Lib/site-packages/matplotlib/__init__.py в моем дистрибутиве Python для Windows

nn = numpy.__version__.split('.')
if not (int(nn[0]) >= 1 and int(nn[1]) >= 1):
    raise ImportError(
            'numpy 1.1 or later is required; you have %s' % numpy.__version__)

Проблема в том, что для этого требуется, чтобы первая цифра (разделенная точками) была больше или равна 1, а в вашем случае вторая цифра - 2. Вы можете обойти это несколькими способами, но одним способом состоит в том, чтобы изменить оператор if на

if not ((int(nn[0]) >= 1 and int(nn[1]) >= 1) or int(nn[0]) >= 2):

Или вы можете просто изменить его на:

if not (float('.'.join(nn[2:])) >= 1.1):

Что могло бы быть лучше.

1
Justin Peel 14 Июн 2010 в 15:42

После комментария Джастина ... вот эквивалентный файл для Linux:

/usr/lib/pymodules/python2.6/matplotlib/__init__.py

Sudo отредактируйте это, чтобы исправить проблемную строку: if not ((int (nn [0])> = 1 and int (nn [1])> = 1) or int (nn [0])> = 2):

Спасибо, Джастин Пил!

0
HaoQi Li 8 Май 2011 в 10:53