Чтобы понять, почему это происходит, вы должны знать, как Windows находит исполняемые файлы для запуска и как установлено программное обеспечение Python.
- При выполнении команды Windows ищет исполняемый файл в переменной окружения PATH. Выполняет первый найденный.
python.exe
устанавливается в <PYTHON_INSTALL_DIR>
(например, C:\Python\3.7
).
pip.exe
и другие инструменты Python (например, pylint
, virtualenv
, pycrust
и т. Д.) Или установлены в <PYTHON_INSTALL_DIR>\Scripts
.
py.exe
установлен в системном каталоге Windows (например, C:\Windows
).
python
и pip
используют модули, найденные в каталоге, в котором они установлены, они не смотрят на PATH.
Итак, допустим, у вас есть следующие версии Python:
C:\Python\2.7
C:\Python\3.6
C:\Python\3.7
и ваша среда PATH содержит следующие каталоги:
C:\Python\2.7
C:\Python\3.6\Scripts
затем см. Следующий вывод:
C:\>python -V
Python 2.7.16
C:\>pip -V
pip 19.1.1 from c:\python\3.6\lib\site-packages\pip (python 3.6)
C:\>py -V
Python 3.7.3
Таким образом, при запуске pip
возможно, что пакеты установлены в другой версии Python, чем версия, которую вы получите при запуске python
.
Чтобы увидеть, какие версии (правильно) установлены в вашей системе, запустите py -0p
. Пример вывода:
C:\>py -0p
Installed Pythons found by py Launcher for Windows
-3.7-64 C:\Python\3.7-64\python.exe *
-3.7-32 C:\Python\3.7-32\python.exe
-3.6-64 C:\Python\3.6-64\python.exe
-2.7-64 C:\Python\2.7-64\python.exe
-2.7-32 C:\Python\2.7-32\python.exe
Общее решение (для Windows)
Лучше всего не полагаться на PATH вашей системы. Используйте панель запуска py
, чтобы выбрать нужную версию. Чтобы запустить модуль pip
, соответствующий версии Python, которую вы хотите использовать, запустите pip
как модуль вместо исполняемого файла.
Так что вместо:
pip install <package>
пробег:
py -3.6 -m pip install <package>