在python启动时自动加载模块

rub*_*bik 12 python module ipython autoload

我希望IPython或Python解释器在我启动它时自动加载模块.

可能吗?

例如,当我启动IPython时:

$ ipython

...

>>> from __future__ import division
>>> from mymodule import *

In [1]:
Run Code Online (Sandbox Code Playgroud)

像教程页面中的SymPy实时shell一样.

pyf*_*unc 16

.pythonstartup在您的主目录中有一个并在那里加载模块并指向PYTHONSTARTUP该文件的env.

在交互模式下显示第一个提示之前,将执行该文件中的Python命令.

我用它来在python解释器shell中启用命令行完成

  • @rubik:@eumiro:eumiro先回答,他的回答很独特,我的回答也是如此.接受eumiro的回答. (8认同)
  • 也谢谢你!但是现在我怎样才能选择两个接受的答案? (2认同)
  • @pyfunc ...帽子了! (2认同)

new*_*ver 6

除非将-S选项传递给python二进制文件,否则在执行传递给您的脚本或交互式解释器之前,默认情况下会导入一个特殊的站点模块。除其他外,该模块查找*.pth文件。在每一行上,*.pth文件应该包含要包含到的路径sys.path或要执行的命令。该模块也会导入sitecustomize, and usercustomize(可以包含任意代码,如果他们碰巧引发错误,这是让您的同事发疯的好方法)如果它们存在于sys.path.

但问题是,导入模块sys.path时当前目录不在site,也就是说很难配置您的特定脚本。

我有时会在脚本的开头添加以下行,以便脚本开始搜索.pth当前目录中的文件并将缺少的路径添加到sys.path

# search for *.pth files in the current directory
import site; site.addsitedir('')
Run Code Online (Sandbox Code Playgroud)


eum*_*iro 4

检查文件~/.ipython/ipythonrc- 您可以列出要在启动时加载的所有模块。

  • 请注意,iPython 此后已弃用“ipythonrc”。新的配置文件具有相同的功能(以及更多功能),如[在其文档中](http://ipython.org/ipython-doc/dev/config/ipython.html#example)所述。 (9认同)
  • 该链接现在已失效。有关解决方案,请参阅 http://stackoverflow.com/questions/20835977/。 (2认同)