代码之家  ›  专栏  ›  技术社区  ›  swigganicks

如何在运行Python脚本时始终导入包(非交互式)?

  •  0
  • swigganicks  · 技术社区  · 1 年前

    基本上我想复制 PYTHONSTARTUP 但是当运行脚本时,即。 python app.py 。我找到的答案包括创建 usercustomize.py 文件并将其放入由 python -m site

    这可以在我的另一个脚本之前执行该脚本,但不会在该脚本中保留任何导入。我的目标是尽可能使用Rich覆盖内置的打印函数。所以我现在 蟒蛇启动 文件如下所示:

    try:
        from rich import print, pretty
        pretty.install()
    except ImportError:
        pass
    

    如果我把上面的 用户自定义.py ,它运行,但打印功能并没有像我希望的那样被覆盖。这似乎是故意的,但有没有其他方法可以实现我想要的?

    1 回复  |  直到 1 年前
        1
  •  2
  •   pts    1 年前

    您可能需要修改 print 的属性 builtins 单元这会影响所有默认值 print(...) 电话。

    try:
        from rich import print, pretty
        pretty.install()
        __import__('builtins').print = print
    except ImportError:
        pass