我有2个python脚本。在
satellite_utils.py
apply_errata.py
我运行的脚本是:
^{pr2}$apply_errata.py
调用在satellite_utils.py
中定义的函数。在
现在我使用模块logging
来记录我的消息。我只想导入一次,而不必在每个脚本中声明它。在
如果我在apply_errata.py
中定义logging
,并且在satellite_utils.py
中引用了它,我得到:
Traceback (most recent call last):
File "apply_errata.py", line 20, in <module>
satellite_utils.applyErrata(args.release, args.all, args.rollback)
File "/root/config-3.1.21/automated-os-patching/satellite_utils.py", line 34, in applyErrata
applyErrataOnSystem(system, release, automaticRollback, [erratum])
File "/root/config-3.1.21/automated-os-patching/satellite_utils.py", line 39, in applyErrataOnSystem
logging.warning('is when this event was logged.')
NameError: name 'logging' is not defined
有什么办法可以避免在每个文件中使用import语句?在
您可以通过在脚本中导入必要的库,然后使用wildchar将该脚本中的所有内容导入到另一个脚本中。通过这样做,您不会再次导入所有这些脚本,而是引用它们,它们可以在第二个脚本中使用,就像在第一个脚本中使用它们一样。在
例如: 1脚本1.py
脚本2.py
这里的日志是在Script1中导入的,我将从Script1导入Script2,这意味着Script1中使用的所有库、变量、函数定义都可以从Script2访问和修改。因此,我在Script2中直接使用日志,而没有任何声明/赋值。在
根据@anugrah的评论,您可以使用
__init__.py
初始化目录中的模块,以便可以像上面的方法一样导入和使用它们。所以如果你选择这个方法abc/\uu init\uy.py
abc公司/模块.py
Script1.py
相关问题 更多 >
编程相关推荐