python - 如何在 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
它json
在 c:\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的行命令选项中找不到内核子命令的详细说明。
解决方案
我在 Windows 7 中找到了解决我的问题的解决方案。我什至不需要ipyKernet
包。
我已经开始在Python 3.7和Python 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 Panel
、Systems
、 Advanced 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
如有必要,其他解决方案将临时更改内部的路径环境变量和其他任何环境变量。我还没有这样做,因为到目前为止一切都很好。
推荐阅读
- javascript - OpenLayers:地图不使用非“标准”EPSG 代码渲染
- react-native - 如何仅使用 React Native 中的一个功能通过 onLayout 获得多个视图的尺寸?
- mysql - 我需要 SQL 表中的最后一条记录
- swift - 如何在 Swift 中创建引用类型?
- android - 如何禁用 ViewPager2 中的滑动?
- c++ - 数组的 C++ 指针:为什么不能在函数 begin(array) 中使用由间接计算的 const var 定义的数组?
- xamarin - 无法访问 AutoSizeableTextView 公共类 ButtonRenderer
- java - Apache Camel REST 请求 HTTP 错误 403 Spring Security
- azure - 具有多个自定义域的 Azure VM
- android - Sqlite 数据库上传不适用于谷歌驱动器