ipython / ipython/ipykernel

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

Ouverte
#1,158 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
734
Forks
412
Merge moyen
1 j 5 h
PR mergées (30 j)
8

Description

# 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`).

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.