我研究了许多类似问题的答案(打开同名的模块很简单),但没有找到如何打开与__main__
程序相同文件名的模块的答案。
让我们看看我的代码树(为此简化了代码):
<source root>
log_parser/
log_parser.py (module to import)
my_system/
log_parser/
log_parser.py (__main__)
正如您在树上看到的那样,我要导入log_parser/log_parser
。 <source root>
已添加到路径。
Python首先将当前路径添加到路径。我发现我可以从导入路径中排除当前路径,并且可以正常工作。有没有其他的解决方案和更多的pythonic?
<other imports>
sys.path = sys.path[1:]
from log_parser.log_parser import LogParser
如何在没有像sys.path = sys.path[1:]
或del sys.path[0]
这样的猴子的情况下导入?
我可以重命名模块,但我不想使用丑陋且太长的名称,例如my_system_log_parser.my_system_log_parser
。