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

时间:2012-06-20 17:04:52

标签: python numpy ipython

我发现自己几乎每次打开python解释器时都会输入import numpy as np。如何设置python或ipython解释器以便自动导入numpy?

8 个答案:

答案 0 :(得分:63)

对于ipython,有两种方法可以实现这一目标。两者都涉及ipython的配置目录,该目录位于~/.ipython

  1. 创建自定义ipython个人资料。
  2. 或者您可以将启动文件添加到~/.ipython/profile_default/startup/
  3. 为简单起见,我使用选项2.您只需在.py目录中放置.ipy~/.ipython/profile_default/startup文件,它将自动执行。所以你可以简单地将import numpy as np放在一个简单的文件中,并且你的ipython提示符的命名空间中会有np。

    选项2实际上可以使用自定义配置文件,但使用自定义配置文件将允许您根据特定情况更改启动要求和其他配置。但是,如果您总是np那样可供您使用,那么请务必将其放在启动目录中。

    有关ipython配置的更多信息。 docs有更完整的解释。

答案 1 :(得分:55)

使用环境变量PYTHONSTARTUP。从官方文档:

  

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

因此,只需使用import语句创建一个python脚本,并将环境变量指向它。话虽如此,请记住'Explicit总是优于隐式',所以不要依赖于生产脚本的这种行为。

对于Ipython,请参阅this有关如何制作ipython_config文件的教程

答案 2 :(得分:20)

我使用这样的〜/ .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快捷方式也非常方便......

答案 3 :(得分:4)

虽然创建自定义启动脚本(如ravenac95 suggests)是大多数情况下的最佳常规答案,但在您想要使用from __future__ import X的情况下,它不会工作。如果你有时在Python 2.x中工作但想要使用现代部门,那么只有一种方法可以做到这一点。创建个人资料后,请修改profile_default(对于位于~/.ipython/profile_default的Ubuntu)并在底部添加如下内容:

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

答案 4 :(得分:2)

作为接受答案的简单替代方案,在linux上:

只需定义一个别名,例如将alias pynp='python -i -c"import numpy as np"'放在〜/ .bash_aliases文件中。然后,您可以使用pynp调用python + numpy,您仍然可以使用python的python。 Python脚本'行为没有受到影响。

答案 5 :(得分:2)

您可以将普通的python脚本创建为import_numpy.py或您喜欢的任何内容

#!/bin/env python3
import numpy as np

然后使用-i标志启动它。

python -i import_numpy.py

通过这种方式,您可以灵活地选择仅用于不同项目的模块。

答案 6 :(得分:1)

ravenac95中提到的answer,您可以创建自定义配置文件或修改默认配置文件。这个答案可以快速查看import numpy as np自动所需的Linux命令。

如果要使用名为numpy的自定义配置文件,请运行:

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

或者,如果您想修改默认配置文件以始终导入numpy:

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

查看IPython config tutorial以深入了解配置配置文件。请参阅.ipython/profile_default/startup/README以了解启动目录的工作原理。

答案 7 :(得分:1)

我的默认ipython --pylab --nosep --InteractiveShellApp.pylab_import_all=False 调用是

--pylab

ipython已成为numpy选项已有一段时间了。它会导入matplotlib和(部分)--Inter...。我添加了*选项,因此它不使用np....导入,因为我更喜欢使用显式OPT(i, w) = max(OPT(i-1, w) or vi + OPT(i, w-wi)) ^ ^ removed the element not removing the element

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