PyCharm 模块名称冲突
我有一个模块叫做 'io',它在我的包里:mypackage.io。这就跟Python自带的io包发生了冲突。因此,每当我在PyCharm中调试我的代码时,由于pydev助手使用了gzip(而gzip又使用了io),我就会遇到一个模块导入错误。这个问题部分是因为PyCharm会自动把我的包路径添加到解释器的路径中。所以我现在有两个选择:
- 根据这个回答 尝试导入与内置模块同名的模块会导致导入错误,看起来我需要对gzip.py进行一些修改,让它通过绝对导入的方式来导入io。
- 把我的模块从io改名为其他名字,比如something_else。
我是不是漏掉了更好的解决办法?
1 个回答
3
你基本上有两个选择:
- 给你的自定义包换个名字
- 明确使用 mypackage.io.foo,而不是 io.foo
一般来说,把自定义包放在一个内置包的上面是不太好的做法,除非你是故意要改变那个内置包的行为。这样做可能短期内看起来有好处,但长期会带来很多麻烦。