ipython / ipython/ipykernel

Exception in script in ~/.ipython/profile_default/startup causes other scripts to not execute

未关闭
#1,158 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Python
星标
734
派生
412
平均合并
1 天 5 小时
30 天内合并 PR
8

描述

# Summary
If one of the files in your `~/.ipython/profile_default/startup` throws an exception, then any other file that executes later (i.e. is lexicographically higher, because startup scripts are executed in lexicographical order) will not be executed.

# To reproduce
1. Run these commands:
```
echo 'raise Exception' > ~/.ipython/profile_default/startup/a.py
echo 'x = 123' > ~/.ipython/profile_default/startup/b.py
```
2. Open a Jupyter notebook, type `x` into a cell, and press enter
# Expected behavior
It outputs 123. Ideally it also shows some information indicating that `a.py` failed to run.

# Actual behavior
It shows `NameError: name 'x' is not defined`. It also doesn't give any indication that `a.py` (or `b.py`) failed to run.

# System configuration
Kernel version:
```
Python 3.11.6 (main, Oct 2 2023, 20:46:14) [Clang 14.0.3 (clang-1403.0.22.14.1)]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.16.1 -- An enhanced Interactive Python. Type '?' for help.
```

Python packages:
```
$ python3 -m pip show ipykernel | grep Version
Version: 6.25.2
```

OS version: macOS 13.3.1

# Notes
If you run
```
mv ~/.ipython/profile_default/startup/{a,c}.py
```
then it will successfully define `x` (because `b.py` runs before `c.py`).

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。