首页 > 解决方案 > 如何在 iPython 中选择 Python 3.7 或 Python 3.8?

问题描述

我的操作系统是Windows 7

我需要在 Python 中将 TensorFlow 与 Keras 一起使用,Python 3.8中还不起作用。所以我再次安装了Python 3.7和他的包。

在 IDE PyCharm内部很简单。它只是在设置中添加另一个解释器,它就可以工作。所以当我创建一个项目时,我需要选择正确的解释器。

我还使用iPython进行小测试。我在所有Stackoverflow中都进行了搜索,但没有找到任何适用于 2020 年的答案。我使用的是 iPython,而不是Jupyter环境。

首先,我已经创建了内核,正如 iPython 指令在其网站上所说的那样。

python -m ipykernel install --user

jsonc:\Users\myname\AppData\Roaming\jupyter\kernels

在我使用之后iPython -h,他告诉我使用内核子命令:

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'

所以我迷路了,因为我在iPython的行命令选项中找不到内核子命令的详细说明。

标签: pythonipython

解决方案


我在 Windows 7 中找到了解决我的问题的解决方案。我什至不需要ipyKernet包。

我已经开始在Python 3.7Python 3.8iPython.exe中查找文件

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 环境变量内的文件夹中(可以使用Control PanelSystemsAdvanced system settings、编辑 PATH 变量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

现在是小菜一碟:

如果我想在Python 3.7上运行iPython

py 37

如果我在Python 3.8上运行iPython

py  

或者

py 38

当然,我在每个iPython会话中检查了 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环境变量,但是当使用 shell 中的实用程序 aspip时,会出现问题,因为如果你在 shell 中编写,它会按照变量pip中字符串内容的顺序搜索第一个可执行文件PATH,通常是最后一个Python版本。

因此,必须在旧的 Pythonpip.exe版本中使用另一个名称(例如: to pi.exe)在同一文件夹中的实用程序(请不要重命名原始文件)中进行复制

PY.BAT如有必要,其他解决方案将临时更改内部的路径环境变量和其他任何环境变量。我还没有这样做,因为到目前为止一切都很好。


推荐阅读