如何在IPython中运行脚本?

72 投票
7 回答
47382 浏览
提问于 2025-04-16 01:45

我的需求是,我想在一个文件里初始化一些函数,然后再启动IPython,让这些函数可以用。有没有什么办法可以做到这一点呢?

ipython --run_script=myscript.py

7 个回答

18

你可以使用IPython配置文件来定义启动脚本,这些脚本会在每次启动IPython时自动运行。关于配置文件的详细说明,可以在这里找到。你可以创建多个配置文件,每个文件可以有不同的启动脚本。

假设你只需要一个配置文件,并且每次启动IPython时都想要相同的启动脚本,你可以直接修改默认的配置文件。首先,你需要在IPython会话中找到你的配置目录在哪里:

In [1]: import IPython
In [2]: IPython.paths.get_ipython_dir() # As of IPython v4.0
In [3]: print(ipython_config_dir)
/home/johndoe/.config/ipython

在这个例子中,我使用的是Ubuntu Linux,配置目录在/home/johndoe/.config/ipython,其中johndoe是你的用户名。

默认的配置文件在profile_default子目录下。你可以把任何启动脚本放在profile_default/startup文件夹里。在这个例子中,完整路径就是/home/johndoe/.config/ipython/profile_default/startup

113

在最近的IPython版本中,你需要加上 -i 这个选项,才能进入交互式环境。如果不加 -i,它只会运行 myfile.py 里的代码,然后就会返回到命令提示符。

ipython -i myfile.py
35

根据文档,这非常简单:

你可以用下面的命令启动IPython:

$ ipython [options] files

如果不加任何选项启动,它会依次执行你列出的所有文件,并且会让你进入解释器,同时也会考虑你在ipythonrc文件中设置的选项。这和标准的Python不一样,标准Python用python -i启动时,只会执行一个文件,并且会忽略你的配置设置。

所以,只需使用ipython myfile.py... 就可以了!-)

撰写回答