pip install против python3 -m pip install - PullRequest
0 голосов
/ 08 июля 2019

Я работаю в среде conda, пытаясь установить в нее пакет. На моем предыдущем компьютере pip install <package name> в этой среде работало. Но на этом новом Mac, если я сделаю это, а затем попытаюсь импортировать пакет в этой среде, он не будет работать.

Это:

pip install SpeechRecognition

отличается от

python3 -m pip install SpeechRecognition

Последнее работает ниже, но первое не работает:

>>>import speech_recognition
>>>

Кроме того, файлы, кажется, указывают на то же место:

(test) ~$ which python
/anaconda3/envs/test/bin/python
(test) ~$ which python3
/anaconda3/envs/test/bin/python3
(test) ~$ which pip
/anaconda3/envs/test/bin/pip

все работает из тестовой среды.

Так что происходит? и как мне это исправить? Я хочу иметь возможность надежно тестировать пакеты в изолированной среде.

UPDATE

просто чтобы показать, что pip и pip3 используют 3.7, а не 2.7 на моей машине:

(base) ~$ conda activate test
(test) ~$ which pip3
/Library/Frameworks/Python.framework/Versions/3.7/bin/pip3
(test) ~$ which pip
/anaconda3/envs/test/bin/pip
(test) ~$ pip --version
pip 19.1.1 from /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pip (python 3.7)

Или это проблема? этот пункт использует 3.7 отличную от тестовой среды? Если так, то почему?

1 Ответ

0 голосов
/ 08 июля 2019

Во многих системах pip использует интерпретатор Python 2, а pip3 использует интерпретатор Python 3. Если установлен только Python 3, pip идентичен pip3. Один из способов узнать, какой интерпретатор используется, - прочитать первую строку файла pip.

python3 -m pip install эквивалентно pip3, но, по крайней мере, очевидно, что вы хотите использовать python3.

В вашем случае, похоже, pip использует интерпретатор Python 2, но с модулем, который был установлен для Python 3. Это любопытно.

Я бы рекомендовал вам использовать python3 -m pip install вместо того, чтобы полагаться на команду pip.

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