You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改__main__判断逻辑,让dataset.py导入指定config?

解决多Python文件导入config的判断问题

你之前的判断逻辑无效,是因为模块被导入时,__name__的值是模块的完整命名(比如DataLoaders.dataset),而非文件名dataset.py,直接判断__name__=="dataset.py"永远不会成立。

要让dataset.py也能触发if分支的导入逻辑,需要通过__file__属性获取当前文件的文件名,结合__name__的判断来实现:

修改后的代码

import os

# 获取当前文件的文件名(不带路径)
current_filename = os.path.basename(__file__)

if __name__ == "__main__" or current_filename == "dataset.py":
    import config
else:
    import DataLoaders.config as config

逻辑说明

  • __file__:Python会为每个脚本文件提供这个属性,返回文件的完整路径(比如/project/DataLoaders/dataset.py)。
  • os.path.basename(__file__):从完整路径中提取出最后的文件名(比如dataset.py),跨Windows和Linux平台都能生效。
  • 这样不管dataset.py是作为主程序直接运行(此时__name__为__main__),还是被其他模块导入(此时current_filename为dataset.py),都会走if分支导入config。

内容的提问来源于stack exchange,提问作者Alican Kartal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 05:55:15