Python 2.7 Pylint和python<;工具>;对包的相对导入运行clash(';没有名为<;package name>;';的模块,如果我以pylint方式执行此操作,则会出现错误)

Python 2.7 Pylint和python<;工具>;对包的相对导入运行clash(';没有名为<;package name>;';的模块,如果我以pylint方式执行此操作,则会出现错误),python-2.7,pylint,Python 2.7,Pylint,我已经检查了我的问题是否在其他地方得到了回答,但我发现最像我的两个问题(和)没有回答我的问题。我还使用以下搜索查询进行搜索:“没有名为package.module的模块”。) 我正在开发一个包,它既可以作为工具使用,也可以由其他脚本导入。 因此,我采用以下方式进行设置: /<package_name>/__init__.py # to be able to import it by other scripts /__main__.py # to be a

我已经检查了我的问题是否在其他地方得到了回答,但我发现最像我的两个问题(和)没有回答我的问题。我还使用以下搜索查询进行搜索:“没有名为package.module的模块”。)

我正在开发一个包,它既可以作为工具使用,也可以由其他脚本导入。 因此,我采用以下方式进行设置:

/<package_name>/__init__.py # to be able to import it by other scripts
               /__main__.py # to be able to use it 'live' as tool
               /<modules.py>
但是,当我执行此操作时,会出现以下错误(即使在
\uuuu main\uuuuuu.py
):

如果我从导入中删除了
package\u name
,则执行工作将开始,但pylint开始抱怨:

__main__.py: 1: [W0403(relative-import), ] Relative import 'module1', should be 'package_name.module1'
__main__.py: 2: [W0403(relative-import), ] Relative import 'module2', should be 'package_name.module2'
我已经尝试了从package\u name import module1导入
,但是在执行代码时也出现了相同的错误

我应该怎么做才能修复它,使pylint和工具执行都接受相同的代码(最好是pylint需要的导入)

编辑:为了清楚起见:我工作的公司目前仍然使用Python 2.7,但我们正在通过使用Python 3打印语句等(
来自未来导入
)使代码与Python 3兼容


(注意:
\uuuu init\uuuuuuuuuuuupy
只导入
\uuuuuumain\uuuuuuuuuuupy
并调用
main()
,因此在导入包名时不会出现任何问题。

我觉得代码很好。通常,这类问题归结为找出调用代码的正确方法。在这种情况下,您可能希望确保您这样称呼它:
python-m package\u name
,python应该自动查找并运行
package\u name/\uu main\uuuuuuuuy.py
,我觉得代码很好。通常,这类问题归结为找出调用代码的正确方法。在这种情况下,您可能希望确保这样称呼它:
python-m package\u name
,并且python应该自动查找并运行
package\u name/\uuu main\uuuuuuuy.py

我不能完全确定我是否完全理解当前的问题。代码对我来说似乎很好。通常,这类问题归结为找出调用代码的正确方法。在这种情况下,您可能希望确保这样调用它:
python-m package\u name
,python应该自动查找并运行
package\u name/\uuu main\uuu.py
。你已经这样运行代码了吗?您使用哪个命令运行pylint?@sinoroc:请将您的评论作为答案,因为这是答案。在过去的一年里,我一直在使用普通脚本,所以我没有考虑-m选项,我不能完全确定我是否完全理解当前的问题。代码对我来说似乎很好。通常,这类问题归结为找出调用代码的正确方法。在这种情况下,您可能希望确保这样调用它:
python-m package\u name
,python应该自动查找并运行
package\u name/\uuu main\uuu.py
。你已经这样运行代码了吗?您使用哪个命令运行pylint?@sinoroc:请将您的评论作为答案,因为这是答案。去年我一直在使用普通脚本,所以我没有考虑-m选项
No module named package_name.module1
__main__.py: 1: [W0403(relative-import), ] Relative import 'module1', should be 'package_name.module1'
__main__.py: 2: [W0403(relative-import), ] Relative import 'module2', should be 'package_name.module2'