我希望IPython或Python解释器在启动时自动加载模块。
有可能吗?
例如,当我启动IPython时:
$ ipython
...
>>> from __future__ import division
>>> from mymodule import *
In [1]:
在教程页面中找到类似SymPy's live shell的内容。
答案 0 :(得分:15)
在您的主目录中有一个.pythonstartup
并在那里加载模块并将PYTHONSTARTUP
env指向该文件。
该文件中的Python命令在以交互模式显示第一个提示之前执行。
我用它在python解释器shell中启用命令行完成
答案 1 :(得分:4)
检查文件~/.ipython/ipythonrc
- 您可以列出要在启动时加载的所有模块。
答案 2 :(得分:4)
除非将-S
选项传递给python
二进制文件,否则在将执行传递给脚本或交互式解释器之前,默认情况下会导入一个特殊的site模块。除此之外,该模块还会查找*.pth
个文件。在每一行上,*.pth
文件应包含要包含在sys.path
中的路径,或者要包含要执行的命令。该模块还导入sitecustomize
和usercustomize
(可以包含任意代码,一种让同事疯狂的好方法,如果它们碰巧引发错误),如果它们存在于sys.path
中的某个位置。
问题是,导入sys.path
模块时当前目录不在site
中,即配置特定脚本很难。
我有时会在脚本开头添加以下行,以便脚本首先搜索当前目录中的.pth
文件并将缺少的路径添加到sys.path
:
# search for *.pth files in the current directory
import site; site.addsitedir('')
答案 3 :(得分:1)
另一种可能的解决方案是使用the argument -i
from python
interpreter,该脚本在执行脚本后启动交互模式。
例如,您可以使用:
python -i your_module.py
python -i /path/to/your/module
,以防您定义了__main__.py
python -i -m your.module