未提供项目说明
vip-ipykernel的Python项目详细描述
ViP IPykernel
在
父级IPykernel中的Venv-一个用于Jupyter的IPython内核,它运行最接近的Venv
概述
您是否在所有环境中使用venv
?你把朱庇特从一个
系统/用户安装位置还是通过JupyterHub?你厌倦了做一个
每一个venv的内核?那么这就是给你的包裹!
vip ipykernel重写默认的python3
内核并将其替换为一个
它将向上遍历目录,直到找到.venv
目录,如果
如果找到一个,它将从该目录中用python启动内核,如果
它找不到venv,那么它将使用默认的python3继续运行。
注意:您的venv中必须安装ipykernel,因为这个“内核”只是 在本地venv搜索并启动ipykernel。如果ipykernel不是 在venv内部可用,则无法启动。
只需安装一次,您可以使用pip install vip-ipykernel --user
将其安装到本地用户环境中。
安装包后,运行python3 -m vip_ipykernel.kernelspec --user
要安装内核,现在当您使用默认的python3
运行笔记本时
内核它将使用父目录中的venv。
如果要还原更改,请运行python3 -m ipykernel install --user
,
这将重新安装默认的python3
内核。
或者,如果不想覆盖默认内核,那么可以
将名称(python3 -m vip_ipykernel.kernelspec --user --name venv-kernel
)传递给
这样内核就分别出现在内核列表和默认值列表中
行为没有改变。
工作原理
标准的python3内核是:
{
"argv": [
"/usr/bin/python3",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3",
"language": "python"
}
这只是说“使用python3
运行带有参数的ipykernel_launcher
-f {connection_file}
。当您安装vip ipykernel时,它将替换为:
它将运行vip_ipykernel.vip_ipykernel_launcher
模块,
给它传递参数-m ipykernel_launcher -f {connection_file}
。这个
模块运行一个在当前目录中查找的函数venv_search
,并且
一直到任何父目录,直到找到.venv
或{bin/python3
。
如果它找到一个包含python3的venv,它将参数-m ipykernel_launcher -f {connection_file}
传递给python可执行文件,然后启动
并以同样的方式将该venv的内核连接到当前会话
为特定的venv安装的内核会。
如果找不到venv,那么它将默认为系统python可执行文件
其行为类似于标准的python3
内核。
注意事项和陷阱
VSCode Jupyter笔记本电脑集成
VSCode用自己的系统管理笔记本的内核,因此它不会使用 vip伊皮克内尔。
Venv名称
目前只搜索名为.venv
或venv
的venv,如果您的venv有
另一个名字是找不到的,如果你有多个venv可用
然后第一个(按字母数字排序,所以.venv
优先于
venv
)将被使用。
致谢
内核实现和测试主要是直接从 带有一些小调的ipykernel project 如果可能的话,修改搜索venv并从中启动python。
托多
- []将测试扩展到不同版本的ipykernel/jupyter_core
- []查看显示内核错误的方法
- []支持其他环境:
- []诗歌创作的小王子(
poetry env info --path
) - []Pipenv创建了VENV
- []Pyenv创建了VENV
- []Conda创建的环境
- []用户配置的venvs
- []从vscode配置中读取?在
- []等。。。在
- []诗歌创作的小王子(
- 项目
标签: