Я нашел решение, которое решает мою проблему в Windows 7. Мне даже не нужен пакет ipyKernet
.
Я начал искать iPython.exe
файлы в Python 3.7 и Python 3.8
c:\Users\myname\AppData\Local\Programs\Python\Python37\Scripts\ipython.exe
c:\Users\myname\AppData\Local\Programs\Python\Python38\Scripts\ipython.exe
Итак, я сделал следующий скрипт py.BAT
и сохранил его в папке внутри переменной среды PATH (One можно редактировать переменную PATH, используя Control Panel
, Systems
, Advanced system settings
, environment variables
):
@echo off
cd\dropbox\python
if "%1"=="37" goto ip37
if "%1"=="38" goto ip38
if not "%1"== "" goto erro
:ip38
c:\Users\myname\AppData\Local\Programs\Python\Python38\Scripts\ipython
goto fim
:ip37
c:\Users\myname\AppData\Local\Programs\Python\Python37\Scripts\ipython
goto fim
:erro
echo Syntax: py 37 - iPython 3.7
echo py 38 - iPython 3.8
echo py - iPython 3.8
:fim
Теперь все просто:
Если я хочу запустить i Python более Python 3,7
py 37
Если мне нужно запустить i Python более Python 3,8
py
или
py 38
Конечно, я проверял Python версию в каждом i Python сеансе:
import sys
print(sys.version)
Сообщения были
3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)]
или
3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30)[MSC v.1916 64 bit (AMD64)]
Любой другой параметр
py 40 # e.g.
приводит к
Syntax: py 37 - iPython 3.7
py 38 - iPython 3.8
py - iPython 3.8
Внутренние ссылки в Python вообще не используют PATH
переменные среды, но когда кто-либо использует утилиту в оболочке как pip
, имеет Это связано с тем, что если вы пишете pip
в оболочке, он ищет первый исполняемый файл в порядке строкового содержимого в переменной PATH
, как правило, в последней версии Python.
Таким образом, необходимо сделать копию в старой Python версии этой утилиты в той же папке (пожалуйста, не переименовывайте исходный файл) с другим именем (например, pip.exe
в pi.exe
)
Другое решение - временно изменить переменную окружения пути внутри PY.BAT
и любую другую, если это необходимо. Я еще этого не сделал, потому что пока все в порядке.