进入python或ipython解释器时自动导入模块

我发现自己几乎每次启动python解释器都会inputimport numpy as np 。 如何设置python或ipython解释器,以便自动导入numpy?

使用环境variablesPYTHONSTARTUP 。 从官方文档:

如果这是可读文件的名称,则在交互模式下显示第一个提示之前,会执行该文件中的Python命令。 该文件在执行交互式命令的相同名称空间中执行,以便在交互式会话中无限制地使用定义或导入的对象。

所以,只需使用import语句创build一个python脚本,并将环境variables指向它即可。 话虽如此,请记住“显式总是比隐式更好”,所以不要将此行为依赖于生产脚本。

对于Ipython,请参阅本教程以了解如何创buildipython_config文件

对于ipython,有两种方法来实现这一点。 两者都涉及位于~/.ipython ipython的configuration目录。

  1. 创build一个自定义ipythonconfiguration文件。
  2. 或者你可以添加一个启动文件到~/.ipython/profile_default/startup/

为了简单起见,我将使用选项2.您只需将.py.ipy文件放在~/.ipython/profile_default/startup目录中,它就会自动执行。 所以你可以简单地把import numpy as np放在一个简单的文件中,你可以在ipython提示符的命名空间中inputnp。

选项2实际上将使用自定义configuration文件,但使用自定义configuration文件将允许您根据特定情况更改启动要求和其他configuration。 但是,如果你总是喜欢np话,那么一定要把它放在启动目录下。

有关ipythonconfiguration的更多信息。 文档有一个更完整的解释。

我使用这样的〜/ .startup.py文件:

 # Ned's .startup.py file print("(.startup.py)") import datetime, os, pprint, re, sys, time print("(imported datetime, os, pprint, re, sys, time)") pp = pprint.pprint 

然后定义PYTHONSTARTUP =〜/ .startup.py,Python将在启动一个shell时使用它。

打印语句在那里,所以当我启动shell,我得到一个提醒,它是有效的,已经被导入。 pp快捷方式真的很方便…

作为接受的答案的一个简单的替代,在Linux上:

只需定义一个别名,例如在你的〜/ .bash_aliases文件中alias pynp='python -i -c"import numpy as np"' 。 然后你可以使用pynp来调用python + numpy,而且你仍然可以使用python和python 。 Python脚本的行为保持不变。

正如ravenac95在他的回答中提到的,您可以创build自定义configuration文件或修改默认configuration文件。 这个答案是快速查看需要自动import numpy as np的Linux命令。

如果您想使用名为numpy的自定义configuration文件,请运行:

 ipython profile create numpy echo 'import numpy as np' >> $(ipython locate profile numpy)/startup/00_imports.py ipython --profile=numpy 

或者,如果您要修改默认configuration文件以始终导入numpy:

 echo 'import numpy as np' >> $(ipython locate profile default)/startup/00_imports.py ipython 

查看IPythonconfiguration教程 ,深入了解configurationconfiguration文件。 请参阅.ipython/profile_default/startup/README以了解启动目录的工作方式。

我的默认ipython调用是

 ipython --pylab --nosep --InteractiveShellApp.pylab_import_all=False 

--pylab已经有一段时间了。 它导入numpy和(部分) matplotlib 。 我已经添加了--Inter...选项,所以它不使用* import,因为我更喜欢使用显式的np....

这可以是一个快捷方式,别名或脚本。

在创build像ravenac95这样的自定义启动脚本时,对于大多数情况来说,这是最好的一般答案,但在您想要使用from __future__ import X情况下,它将不起作用。 如果你有时在Python 2.x中工作,但是想使用现代分割,只有一种方法可以做到这一点。 创buildconfiguration文件后,编辑profile_default (对于Ubuntu,位于~/.ipython/profile_default ),并在底部添加如下内容:

 c.InteractiveShellApp.exec_lines = [ 'from __future__ import division, print_function', 'import numpy as np', 'import matplotlib.pyplot as plt', ]