相关疑难解决方法(0)

让Python在我的脚本之前运行几行

我需要运行一个脚本foo.py,但我还需要在代码之前插入一些调试行来运行foo.py.目前我只是将这些行放入其中foo.py并且我小心不要将其提交给Git,但我不喜欢这个解决方案.

我想要的是一个单独的文件bar.py,我不承诺Git.然后我想跑:

python /somewhere/bar.py /somewhere_else/foo.py
Run Code Online (Sandbox Code Playgroud)

我想要做的是首先运行一些代码行bar.py,然后运行foo.py__main__.它应该在bar.py线路运行的相同过程中,否则调试线将无济于事.

有没有办法bar.py做到这一点?

有人建议:

import imp
import sys

# Debugging code here

fp, pathname, description = imp.find_module(sys.argv[1])
imp.load_module('__main__', fp, pathname, description)
Run Code Online (Sandbox Code Playgroud)

问题是因为它使用导入机制,我需要在同一个文件夹foo.py上运行它.我不希望这样.我想简单介绍一下foo.py.

另外:解决方案也需要处理.pyc文件.

python python-import

12
推荐指数
2
解决办法
3961
查看次数

登录框架

想象一下,有一个框架提供了一个方法logutils.set_up(),根据一些配置设置日志记录.

应尽早设置日志记录,因为导入库期间发出的警告不应丢失.

由于旧的way(if __name__=='__main__':)看起来很丑,我们使用console_script入口点来注册该main()方法.

# foo/daily_report.py
from framework import logutils
logutils.set_up()
def main():
    ...
Run Code Online (Sandbox Code Playgroud)

我的问题是logutils.set_up()可能会被调用两次:

想象一下,有一个第二个控制台脚本调用logutils.set_up()imports daily_report.py.

我可以更改框架代码并set_up()在第二次调用中什么也不做logutils.set_up(),但这感觉很笨拙.我想避免它.

我怎么能确定logutils.set_up()只执行一次?

python logging

6
推荐指数
1
解决办法
335
查看次数

标签 统计

python ×2

logging ×1

python-import ×1