进入python或ipython解释器时自动导入模块
我发现自己几乎每次启动python解释器都会inputimport numpy as np
。 如何设置python或ipython解释器,以便自动导入numpy?
使用环境variablesPYTHONSTARTUP 。 从官方文档:
如果这是可读文件的名称,则在交互模式下显示第一个提示之前,会执行该文件中的Python命令。 该文件在执行交互式命令的相同名称空间中执行,以便在交互式会话中无限制地使用定义或导入的对象。
所以,只需使用import语句创build一个python脚本,并将环境variables指向它即可。 话虽如此,请记住“显式总是比隐式更好”,所以不要将此行为依赖于生产脚本。
对于Ipython,请参阅本教程以了解如何创buildipython_config文件
对于ipython,有两种方法来实现这一点。 两者都涉及位于~/.ipython
ipython的configuration目录。
- 创build一个自定义ipythonconfiguration文件。
- 或者你可以添加一个启动文件到
~/.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', ]