首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果目录不包含__init__.py文件,则pylint将引发错误

如果目录不包含__init__.py文件,则pylint将引发错误
EN

Stack Overflow用户
提问于 2017-12-29 14:24:32
回答 5查看 14.5K关注 0票数 30

我有一个文件夹,它只包含用于执行的python脚本。没有必要保留__init__.py文件。所以我能忽略这些错误吗?

代码语言:javascript
复制
$ pylint /app
Using config file /app/pylintrc
************* 
F:  1, 0: error while code parsing: Unable to load file /app/__init__.py:
[Errno 2] No such file or directory: '/app/__init__.py' (parse-error)
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-09-01 00:33:26

代码语言:javascript
复制
$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.13.6
BuildVersion:   17G65

$ pylint --version
pylint 2.1.1
astroid 2.0.3
Python 3.7.0 (default, Jul 23 2018, 20:22:55) 
[Clang 9.1.0 (clang-902.0.39.2)]

更新

我试着做到了:

代码语言:javascript
复制
$ cd /app
$ pylint *.py

或尝试:

代码语言:javascript
复制
$ pylint /path/to/app/*.py

把整件事都搞定了。

代码语言:javascript
复制
...
Report
======
************* Module <yourmodname>
...
X statements analysed.

Statistics by type
------------------

+---------+-------+-----------+-----------+------------+---------+
|type     |number |old number |difference |%documented |%badname |
+=========+=======+===========+===========+============+=========+
...

错误

我试过这样做:

代码语言:javascript
复制
$ pylint .
************* Module .
__init__.py:1:0: F0010: error while code parsing: Unable to load file 
__init__.py:
[Errno 2] No such file or directory: '__init__.py' (parse-error)
票数 24
EN

Stack Overflow用户

发布于 2017-12-29 16:56:05

这是一个已知的PyLint未决问题:

链接目录中的所有文件 (开放)

考虑支持一个不是包的python文件文件夹。 (重复,关闭)

不幸的是,正如我们在讨论中所看到的那样,没有人继续就这一问题开展工作。

票数 10
EN

Stack Overflow用户

发布于 2019-03-02 22:00:45

这个问题出现在我们的一些项目中。

在其中一个项目中,我们最近成功地构建了一个项目,但是突然之间,一切都开始毫无理由地失败了。我们从CI日志到最后一次成功构建,复制了所有安装的确切版本。当这样建造的时候,一切都正常。新版本将失败。

该项目的成功构建来自23.02.2019,失败的构建来自25.02.2019。没有进行实质性的修改。以同样的状态运行,再次失败.

我们又投入了几个小时,我们发现:

  • 调试时,其他错误开始发生。事实证明,astroid 已发布版本2.2.027.02.2019中,这基本上破坏了pylint。将astroid固定到2.1.0版本的解决了这个问题。我们将保持这种状态,直到他们发布补丁或pylint开始处理新版本。关于这件事有一个关于问题的消息。
  • 随着astroid问题的解决,我们回到了由于某些目录中缺少__init__.py文件而导致的失败(这些是Python3.7项目,我们不需要空的__init__.py文件.)
  • 为了找出旧组合成功的原因和新组合失败的原因,我们做了几次尝试。经过大量失败的构建后,我们发现了一个修补程序 更新,它的另一个依赖pylint -- isort --从4.3.44.3.5,发布在E 13425.02.2019E 235中。将其固定在4.3.4版本上,效果很好。任何高于它的东西都会失败。老实说,该更新没有遵循语义版本控制的规则(它绝对不是补丁发布版.更有可能是主修!)

为什么isort会造成这种情况,我还没有找到,但我决定在这里分享这些发现,这样您就可以节省几个小时的试错时间。

TL;博士

将其添加到您的requirements.txt中(至少在pylint的下一个版本之前):

代码语言:javascript
复制
# astroid 2.2.0 seems to break everything in pylint
astroid==2.1.0
# isort above 4.3.4 introduces the "__init__.py not found" issue
isort==4.3.4
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48024049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档