【问题标题】:How can I select Python 3.7 or Python 3.8 in iPython?如何在 iPython 中选择 Python 3.7 或 Python 3.8?
【发布时间】:2020-02-14 19:07:58
【问题描述】:

我的操作系统是 Windows 7

我需要在 Python 中将 TensorFlowKeras 一起使用,但它在 Python 3.8 中还不能使用>。所以我再次安装了 Python 3.7 和他的包。

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

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

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

python -m ipykernel install --user

它在c:\Users\myname\AppData\Roaming\jupyter\kernels 中创建一个json 文件

在我使用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'

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

【问题讨论】:

  • 我建议在需要时使用Anacondavirtualenv 来简化和隔离python 版本和包的更改。看看他们;D
  • Anaconda 很重,我发现了一些错误,我退出了。 VirtualEnv我试了一下,我已经安装了2个虚拟环境,但没有成功。它适用于 Jupyter,但不适用于 iPython。
  • 理论上,ipykernel 是 Jupyter/iPython 开发人员制作的一种更简单的形式,可以轻松计算 Python 版本。

标签: python ipython


【解决方案1】:

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

我已经开始在 Python 3.7Python 3.8

中查找 iPython.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 settingsenvironment variables 编辑 PATH 变量):

@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 中使用pip 的实用程序时,会出现问题,因为如果您在shell 中编写pip,它会搜索第一个可执行文件按PATH 变量中字符串内容的顺序排列,通常是最后一个Python 版本。

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

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

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 2021-02-27
    • 1970-01-01
    • 2020-10-28
    相关资源
    最近更新 更多