【问题标题】:Auto-load a module on python startup在 python 启动时自动加载模块
【发布时间】:2011-04-29 12:15:20
【问题描述】:

我希望 IPython 或 Python 解释器在我启动它们时自动加载它们。

有可能吗?

例如当我启动 IPython 时:

$ ipython

...

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

In [1]:

类似 SymPy's live shell 的东西可以在教程页面中找到。

【问题讨论】:

    标签: python module autoload ipython


    【解决方案1】:

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

    该文件中的 Python 命令在第一个提示以交互模式显示之前执行。

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

    【讨论】:

    • 也谢谢你!但是现在我该如何选择两个接受的答案??
    • @rubik: @eumiro: eumiro 首先回答,他的回答很独特,我的回答也很有效。接受eumiro的回答。
    【解决方案2】:

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

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

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

    # search for *.pth files in the current directory
    import site; site.addsitedir('')
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      【解决方案4】:

      另一种可能的解决方案是使用the argument -i from python interpreter,它会在执行脚本后启动交互模式。

      例如,您可以使用:

      • python -i your_module.py
      • python -i /path/to/your/module 如果您定义了 __main__.py
      • 甚至python -i -m your.module

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-11
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 2023-03-20
        • 2019-09-18
        • 1970-01-01
        • 2017-12-10
        相关资源
        最近更新 更多