Как выбрать Python 3.7 или Python 3.8 в i Python? - PullRequest
3 голосов
/ 14 февраля 2020

Моя ОС Windows 7

Мне нужно использовать TensorFlow с Керас в Python, но это еще не работает в Python 3.8 . Итак, я снова установил Python 3.7 и его пакеты.

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

Я также использую i Python для небольших тестов. Я искал во всех Stackoverflow и не нашел ответа, который работает в 2020 году. Я использую i Python, а не среду Jupyter .

Во-первых, я создал ядра, как сказано в инструкциях i Python на его сайте.

python -m ipykernel install --user

Создает файл json в c:\Users\myname\AppData\Roaming\jupyter\kernels

После того, как я использую iPython -h, и он сказал мне использовать подкоманду kernel :

Subcommands are launched as `ipython cmd [args]`. For information on using
subcommand 'cmd', do: `ipython cmd -h`.

Чувствуя себя более мотивированным, я попробовал команду iPython kernel -h. Но у меня очень запутанный текст.

Итак, я попытался использовать опцию kernel,

C:> iPython kernel

. Мне было выдано следующее сообщение:

To connect another client to this kernel, use:
    --existing kernel-3404.json

Однако я не могу выбрать правильное ядро.

Я пытаюсь использовать файл моего ядра, но безуспешно.

Invalid argument: '--kernel.json'

Так что я заблудился, потому что нигде не нашел подробных инструкций для подкоманды ядра в опциях командной строки для i Python.

1 Ответ

0 голосов
/ 15 февраля 2020

Я нашел решение, которое решает мою проблему в 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 и любую другую, если это необходимо. Я еще этого не сделал, потому что пока все в порядке.

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