【问题标题】:Importing file from a different directory with duplicate file name从具有重复文件名的不同目录导入文件
【发布时间】:2019-11-07 20:37:18
【问题描述】:

例如,如果 dir1 包含导入 config.py 的 abc.py,并且 dir2 也包含 config.py,我如何将 config.py 从 dir 2 导入到 abc.py?

这是一个视觉表示:

dir1/abc.py
     config.py
dir2/xyz.py
     config.py

到目前为止我已经尝试过了

import sys
sys.path.insert(0, '../dir2')
import config as lconfig 
print(sys.path)
print(dir(lconfig))

但它似乎从 dir1 而不是从 dir2 导入 config.py

我通过打印出 sys.path 来确认。

另外,print(dir(lconfig)) 确实返回 dir2 的路径。

【问题讨论】:

  • 您应该使用包创建适当的项目结构,而不是操纵sys.path
  • 更多关于包相对导入,linkhere

标签: python module python-import importerror


【解决方案1】:

如果dir1dir2 的父级在路径中,您可以这样做:

import dir1.config
import dir2.config
print('dir1/config is: %s' % dir1.config)
print('dir2/config is: %s' % dir2.config)

如果你愿意,你可以给它们起更短但有意义的名字:

import dir1.config as config1
import dir2.config as config2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多