ImportError: Немає модуля з іменем matplotlib.pyplot


149

В даний час я практикую матплотліб. Це перший приклад, який я практикую.

#!/usr/bin/python

import matplotlib.pyplot as plt

radius = [1.0, 2.0, 3.0, 4.0]
area = [3.14159, 12.56636, 28.27431, 50.26544]

plt.plot(radius, area)
plt.show()

Коли я запускаю цей сценарій python ./plot_test.py, він показує сюжет правильно. Однак я запускаю його сам ./plot_test.py, він кидає наступні дії:

Traceback (most recent call last):
File "./plot_test.py", line 3, in <module>
  import matplotlib.pyplot as plt
ImportError: No module named matplotlib.pyplot

Чи пітон шукає matplotlib в різних місцях?

Навколишнє середовище:

Mac OS X 10.8.4 64bit
built-in python 2.7

numpy, scipy, matplotlib встановлюється за допомогою:

sudo port install py27-numpy py27-scipy py27-matplotlib \
py27-ipython +notebook py27-pandas py27-sympy py27-nose

спробуйте скористатися #! / usr / bin / env python
Uku Loskit

1
#! / usr / bin / env python не працював, трапляється така ж помилка.
НІМИШАН

Відповіді:


48

На вашій машині встановлено два пітона, один - стандартний пітон, що постачається з Mac OSX, а другий - той, який ви встановили з портами (це той, який matplotlibвстановлено у його бібліотеці, той, що постачається з macosx, не має) .

/usr/bin/python

Це стандартний mac python, а оскільки його немає, matplotlibзавжди слід починати свій сценарій із встановленого з портами.

Якщо python your_script.pyпрацює, то змініть #!на:

#!/usr/bin/env python

Або покласти повний шлях до інтерпретатора python, який matplotlibвстановлений у своїй бібліотеці.


3
Ви можете розробити трохи більше. Я стикаюся з тими ж проблемами.
Акаш Кандпал

1
Чи можете, будь ласка, надати кроки. Я також не отримую того, що ви намагаєтесь пояснити, оскільки я зіткнувся з тією ж проблемою в моєму mac
bhaskar

Це може статися, коли у вашому робочому каталозі є ім'я файлу matplotlib.py
Abhishek Parikh

4
У python3 окрема установка matplotlib за допомогою python3 -m pip install matplotlibвирішена помилка. Тестовано на Ubuntu 16.04.
vinoeshvs

159

pip зробить ваше життя легким!

Крок 1: Встановити pip - Перевірте, чи є у вас pip вже просто, записавши pip в консоль python. Якщо у вас немає pip, знайдіть скрипт python під назвою get-pip.py, тут: https://pip.pypa.io/en/latest/installing.html або безпосередньо тут: https: //bootstrap.pypa .io / get-pip.py (Можливо, вам доведеться використовувати Зберегти як ..)

Крок 2: Візьміть до відома, де збережений файл, і перейдіть до каталогу в командному рядку. Запустіть сценарій get-pip.py, щоб встановити pip. Ви можете написати в cmd цей рядок у лапках: "python. \ Get-pip.py"

Крок 3: Тепер у cmd тип: pip install matplotlib

І вам слід пройти.


13
У питанні уточнюється, що бібліотека вже встановлена
tashuhka

4
Занадто багато відгуків для цієї відповіді, як написано в даний час. Замість того, щоб завантажувати pip, оскільки вони (знаходячись на macosx) вже мають макпорти, OP повинна працювати sudo port install pip. По-друге, pipщоб бути корисними поза їх наявними налаштуваннями, вони також повинні це зробити sudo port install virtualenvдля локальних пітонів "віртуальних середовищ" (можливо, так званих python3-virtualenv). Потім, встановивши та ввівши (активуючи) новий virtualenv, запустіть pip install ...всередині virtualenv. Нарешті, сценарій python все ще потребує виклику, використовуючи #!/usr/bin/env pythonдля цього будь-яке з цих дій.
Майкл

в ubuntu я використовував python ./get-pip.py --user і це працювало на мене. thx
LeleMarieC

36

Якщо ви використовуєте Python 2, просто запустіть

sudo apt-get install python-matplotlib

Найкращий спосіб отримати matplotlib:

pip install matplotlib

тому що попередній спосіб може дати вам стару версію matplotlib


Вибачте, я не вказав систему, я використовую Debian, подібні системи працюватимуть.
k.biao

4
np, але в питанні сказано: The environment is: Mac OS X 10.8.4 64bit built-in python 2.7
Лант,

ви можете шукати подібність команди в apt-get для вашої ОС X
k.biao

У Ubuntu ви можете використовувати sudo apt-get install python-matplotlibдля python3.
користувач2023370

24

Це працювало для мене, надихнувши Шитала Каула

pip uninstall matplotlib
python3 -m pip install matplotlib

Я знав, що він встановлений у неправильному місці, коли це працювало:

python2.7
import matplotlib

12

перша перевірка версії python

для python2 Vesion

sudo apt-get install python-matplotlib

для версії python3

sudo apt-get install python3-matplotlib

якщо ви пропустите установку matplotlib з версією python, ви отримаєте помилку модуля, оскільки жоден модуль для цієї версії не виходить.




1

У мене була подібна проблема, яку я вирішив, і ось моє питання:

Я все налаштував на python3, але, наприклад, використовував python для виклику свого файлу: я набирав "python mnist.py" ... оскільки у мене все є на python3, він думав, що намагаюся використовувати python 2.7

Виправлення: "python3 mnist.py" - 3 змінили все

Я аж ніяк не експерт у python або pip, але напевно є різниця між pip та pip3 (pip прив’язаний до python 2.7) (pip3 прив’язаний до python 3.6)

тому при встановленні для 2.7 do: встановлення pip при установці для 3.6 do: pip3 install

а при запуску коду для 2.7 do: python при запуску коду для 3.6 do: python3

Я сподіваюся, що це комусь допоможе!


1

Коментар у звичайній стрічці заблокований. Дозвольте мені написати, чому це відбувається, як і коли ви виконували додаток.

Якщо ви запустили сценарії, python чи ipython в іншому середовищі, ніж ті, що ви встановили, ви отримаєте ці проблеми.

Не плутайте її повторно. Matplotlib зазвичай встановлюється у вашому користувальницькому середовищі, а не в sudo. Ви змінюєте оточення.

Тому не перевстановлюйте pip, просто переконайтеся, що ви використовуєте його як sudo, якщо встановили його в середовищі sudo.


0

Я годинами головував над цим, поки не думав перевірити свій .bash_profile. У мене не вказано шлях для python3, тому я додав наступний код:

# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH

А потім знову встановив матплотліб з sudo pip3 install matplotlib. Зараз все прекрасно працює.


0

Тому я використовував python3 -m pip install matplotlib' thenімпорт matplotlib.pyplot як plt`, і він працював.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.