Python - пакет не найден, хотя он установлен - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть следующая версия python

import sys
print(sys.version)

3.6.5 | packaged by conda-forge | (default, Apr  6 2018, 13:44:09) 
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]

Я установил пакет с помощью следующей команды

pip install wfdb

Он успешно установлен, потому что когда я пишу команду:

pip show wfdb

Появляется следующая информация Место нахождения: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages

Однако, когда я набираю команду import wfdb в записной книжке Python или версию python в терминале, я получаю следующее сообщение

No module named 'wfdb'

Это имеет отношение к пути, по которому python проверяет, где находятся пакеты? Как это проверить и как это изменить?

Ответы [ 4 ]

0 голосов
/ 08 ноября 2018

which python

дает вам PATH Python

, а затем /path/to/python -m pip install thepackagetobeinstalled

Большое спасибо @ MartijnPieters

0 голосов
/ 05 ноября 2018

Вы установили пакет python2.x и используете python3.x. Попробуйте:

pip3 install wfdb

Если у вас нет pip3, запустите:

[apt-get/yum] install pythion3-pip

Вы всегда можете увидеть, какие пакеты вы сейчас установили, запустив:

pip freeze

и для пакетов Python 3.x

pip3 freeze

Пожалуйста, помните, что каждый раз, когда вы устанавливаете пакет Python, он будет помещен в каталог для одной конкретной версии Python. Отсюда твоя ошибка.

0 голосов
/ 05 ноября 2018

У вас есть (по крайней мере) 2 установки Python, одна из которых управляется Anaconda, а другая, которая выглядит как официальная сборка Python.org Mac, установлена ​​в масштабе всей системы. Команда pip в командной строке привязана к сборке Python.org Mac.

pip - это скрипт, который привязан к конкретной установке Python, и может быть несколько версий скрипта, установленных в разных местах, и обычно также устанавливается с pipX и pipX.Y, чтобы соответствовать X.Y индикатор версии версии Python, к которой он привязан. Для Python 3.6 это означает, что тот же сценарий также будет доступен как pip3 и pip3.6. (Это также означает, что pip может быть подключен к Python 2 или Python 3, в зависимости от вашей точной настройки ОС. Не обязательно, что pip без номера версии устанавливается в Python 2.x, так как некоторые ответы могут п).

Обратите внимание, что когда вы запускаете команду без пути в вашей оболочке (например, pip в отличие от /usr/bin/pip), вы просите свою оболочку найти команду для вас в нескольких местах, перечисленных в переменная окружения PATH. Первое местоположение в списке PATH с этой командой затем фиксируется. which -a <command> сообщит вам все возможные PATH -регистрации, в которых можно найти команду. Вы всегда можете использовать полный путь к команде, чтобы обойти PATH путь поиска.

Вы всегда можете проверить, с какой версией Python связана команда pip:

pip -V

, которая выведет версию pip и местоположение, в котором она установлена. Будет напечатано что-то вроде

pip pipX.pipY path/to/pythonX.Y/site-packages/pip (python X.Y)

где pipX.pipY - номер версии пипса, а path/to/pythonX.Y сообщает вам, для чего предназначена установка Python.

Вы можете попытаться сопоставить это с версией Python, запустив

python -m site

, который выводит путь поиска модуля Python для этой версии Python. Python также может быть запущен с python, pythonX и pythonX.Y и подвергается такому же поиску PATH.

Обратите внимание на переключатель -m, который указывает Python найти модуль в его пути поиска модулей и выполнить его как скрипт. Многие модули поддерживают запуск таким образом, , включая pip. Это важно, поскольку это помогает избежать необходимости искать лучшую команду pip, если вы уже можете запустить правильную версию Python.

У вас есть несколько хороших вариантов:

  • Поскольку вы используете Anaconda, вы можете найти пакет conda для того же проекта. Там есть такой пакет для wfdb. Установите его с

    conda install wfdb
    

    Anaconda стремится предоставить вам более широкий опыт управления программным обеспечением, который включает более широкий набор опций программного обеспечения, чем просто экосистема Python PyPI, а пакеты conda обычно управляют большим количеством вещей, чем просто пакет Python.

    Пакеты Conda обычно поддерживаются набором разработчиков, отличным от самого пакета, поэтому в PyPI может быть доступна более новая версия (требующая pip install), чем в Conda.

    Это не вариант для всех пакетов Python, если нет пакета conda, который вы должны использовать pip. См. Установка пакетов не-conda .

  • Вы можете использовать команду conda для создания conda среды . После создания среды вы можете активировать ее с помощью

    source activate <name_of_cenv>
    

    , чтобы изменить настройки PATH. С окружением 'active' в каталоге PATH указан первый каталог для среды conda, а команда pip будет привязана к этой среде.

    Обратите внимание, что среда conda предоставляет вам изолированную среду для конкретного проекта, сохраняя установку библиотеки отдельно от остальных ваших пакетов Python в центральном месте site-packages. Если вы хотите установить пакет для всех ваших проектов Anaconda Python, не используйте среду conda.

  • Используйте двоичный файл Anaconda Python для запуска pip в качестве модуля; когда вы можете запустить /path/to/python или pythoncommand, чтобы открыть правильную версию Python, вы можете использовать тот же путь для запуска /path/to/python -m pip ... вместо pip ..., чтобы быть абсолютно уверенным, что вы устанавливаете в правильную версию Python.

  • Ищите лучшую команду pip, с which -a pip или which -a pip3.6 и т. Д. Но если вы уже знаете двоичный файл Python, ищите pip в том же месте bin. Если у вас есть anaconda/bin/python, то, вероятно, тоже есть anaconda/bin/pip.

0 голосов
/ 05 ноября 2018

Как вы можете прочитать здесь :

pip3 и pip будут иметь значение только тогда, когда вы не используете какие-либо менеджеры окружающей среды, такие как virualenv (или) conda. Теперь, как вы создавая среду conda с python == 3.x, pip будет эквивалентно пип3.

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

Активировать новую среду:

В Windows:

activate myenv

В macOS (это ваш выбор) и Linux:

source activate myenv

ПРИМЕЧАНИЕ. Замените myenv на имя среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...