从终端运行python程序时添加模块

时间:2017-10-12 09:23:08

标签: python linux module terminal include

我写了一个模块,如果导入它,会自动更改程序的错误输出。在我编写的几乎任何python代码中使用它都非常方便。

因此,我不想将行import my_errorhook添加到我编写的每个代码中,但希望自动添加此行。

我发现this answer,声明应该避免直接更改python的行为。所以我想改变命令行,比如

python --importModule my_errorhook main.py

并在bashrc中定义别名以覆盖python命令以自动添加参数。有什么方法可以实现这样的行为吗?

1 个答案:

答案 0 :(得分:0)

在python命令行中没有像--importModule这样的东西。在没有明确导入的情况下接收代码的唯一方法是将函数放在 builtins 模块中。但是,这是一种不鼓励的做法,因为如果没有适当的设计,它会使您的代码难以维护。

假设您的python文件main.py是整个程序的入口点。现在,您可以创建另一个文件bootstrap.py,并将以下代码放入新文件中。

import main

__builtins__.func = lambda x: x>=0
main.main()

然后可以从所有模块调用函数func()而无需导入。例如,在main.py

def main():
    ...
    print(func(1))
    ...