Вопрос по numpy, python – Установленные модули Python - Python не может их найти

12

Это новичокpython вопрос по установке. Это первый раз, когда я попытался установить и вызвать пакет. У меня естьpip установлен, и я попытался установить два модуля -numpy а такжеpandas.

В терминале я запустил следующие команды:

sudo pip install numpy

sudo pip install pandas

Обе команды вернулись с сообщением об успехе. Здесьpandas сообщение об успехе (это второй пакет, который я установил и который все еще был в моей истории терминала):

Successfully installed pandas
Cleaning up...

pip вернул похожее сообщение послеnumpy был установлен.

Теперь, когда я запускаюpython и попробуйте позвонить с помощью:

import pandas

Я получаю это сообщение об ошибке:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pandas

То же самое, когда я пытаюсьnumpy.

Может кто-нибудь сказать мне, что я делаю неправильно?

Вы используете virtualenv? alan
Как примечание, по какой-то конкретной причине вы не можете просто использовать обычный менеджер пакетов для их установки? Gareth Latty
@ Lattyware - с допуском быть новичком - какой менеджер пакетов мне следует использовать? Читая онлайн, кажетсяpip было предпочтительнее, чемeasy_install. mikebmassey
@alan Я нет. Нужно ли мне? mikebmassey
Нет, не обязательно Но если бы вы были, вам нужно убедиться, что virtualenv активирован, прежде чем ваш импорт будет работать. Но проигнорируйте мой комментарий, так как он, похоже, не актуален. alan

Ваш Ответ

2   ответа
0

$ sudo apt-get install python-pandas
$ sudo apt-get install python-numpy
Error: User Rate Limit Exceeded
15

pip, easy-install и т. д. связаны с конкретной установкой python и будут использовать этот python по умолчанию. так что если у вас есть системный python и системный easy_install (или вы установили easy_install самостоятельно с помощью системного python), то easy_install по умолчанию установит пакеты для системного python.

лучший способ избежать этого беспорядка, imho, это использовать системный python для этой версии (возможно, 2.7) и, для других версий, использоватьmake alt-install при установке, которая даст вам такие исполняемые файлы, какpython3.1 и тому подобное. если вам действительно нужно заменить версию, предоставленную системой, удалите ее.

как только вы это сделали. у каждого питона будет свое имя (оканчивающееся на версию) иpython останется системным.

затем, когда вы установите easy_install, вы заметите, что существуют версии для конкретных версий (easy_install-2.7 например). использовать те. если он отсутствует, установите distutils с соответствующим питоном (например, используйтеpython3.1 и вы получитеeasy_install-3.1). к сожалению, каждый раз, когда вы делаете это (iirc), вы перезаписываете не версированныйeasy_install, такnever используйте это - всегда используйте версионный.

альтернативно, вы не можете установить easy_install или pip для чего-либо, кроме системной версии, тогдаalways use virtualenv, virtualenv позволит вам указать версию Python (чтобы вы могли использовать систему virtualenv для всех установленных питонов), а затем установит easy_install / pip для используемого вами питона. так что, как только вы оказались в виртуальной среде, все просто работает.

и я только что понял, что у меня нет большого опыта работы с пипсом, поэтому я не могу помочь с этим (кроме как отметить, что virtualenv его предоставляет) (о чем предпочтительнее: раньше пипс лучше поддерживал; я думаю, в наши дни последняя версия distutils / easy_install так же хороша, как pip, но в pip есть еще несколько функций, которые я никогда не использовал).

Отказ от ответственности: вышеизложенное основано на опыте, полученном при разработке lepl, который работает с 2.6 до 3.2, поэтому мне нужно проверить его на всех этих. насколько я знаю, то, что я описал выше, работает для меня, но у меня нет глубоких знаний о python / easy_install / pip, поэтому у меня могут быть некоторые ошибки в рационализации / описании вещей (другими словами, я пишу все это на всякий случай это помогает, но я немного волнуюсь, у меня есть ошибка - пожалуйста, кто-то исправит меня, если так).

Похожие вопросы