我们正在尝试解决 PEP8 E402 的问题。
大多数情况下,我们的代码被破坏:
import os
os.environ['LIB_CAN_THROW_ERROR_ON_IMPORT'] = 2
import lib
os.environ['LIB_CAN_THROW_ERROR_ON_IMPORT'] = 0 # back
Run Code Online (Sandbox Code Playgroud)
——
if sys.version_info[0] > 2:
import python3lib
else:
import python2lib
Run Code Online (Sandbox Code Playgroud)
——
try:
import lib
except:
print('lib is required')
sys.exit(1)
Run Code Online (Sandbox Code Playgroud)
如何解决这些违规行为?
我已在 Ubuntu 18.04 上使用的 VM 上正确安装了上述所有模块。在特定脚本或文件夹上运行它们中的任何一个时,它们都会正确识别样式错误并将其输出到控制台中。例如:
(venv) .../src$ python3.6 -m flake8
./free_prediction.py:8:1: E303 too many blank lines (5)
./free_prediction.py:8:28: E231 missing whitespace after ','
./free_prediction.py:10:5: E225 missing whitespace around operator
./free_prediction.py:12:3: E225 missing whitespace around operator
./free_prediction.py:15:13: E225 missing whitespace around operator
Run Code Online (Sandbox Code Playgroud)
但是,代码中仍然存在相同的样式错误。如何使它们自动更正?
我刚刚安装了 JupyterLab 3.0.14 附带的 WPy64-3940 。
令我惊讶的是,现在我的代码被称为“pycodestyle”的东西所装饰。
如下所示,代码带有橙色下划线,并且会出现一个弹出窗口。
我一点也不喜欢这样,它影响我的阅读。
你知道它从哪里来以及我如何禁用它吗?
谢谢
米歇尔
使用两者的目的是什么
[flake8]
ignore = E501
max-line-length = 120
Run Code Online (Sandbox Code Playgroud)
我在 setup.cfg 文件中看到很多遵循这种格式的代码库,但我的问题是,如果您忽略 E501,那么您的代码在模块中每行接受任意数量的字符,为什么他们要使用最大行长度?
我有一个python项目要检查PEP8一致性。
我的setyp.cfg是以下内容:
[pycodestyle]
count = True
ignore = E266, W504
max-line-length = 80
statistics = True
exclude = .venv,./build%
Run Code Online (Sandbox Code Playgroud)
经过一些清理,我的pycodestyle支票现在没有错误或警告(当然忽略了那些)
~/Workspace/my-app master ? 2h36m
? pycodestyle .
(.venv)
~/Workspace/my-app master ?
Run Code Online (Sandbox Code Playgroud)
但是,pylint针对我的项目运行会产生大量错误:
(其中一些仅用于演示目的)
************* Module somemodule.commands
src/somemodule/commands.py:98:0: C0330: Wrong continued indentation (add 16 spaces).
format(gcp_project)))
^ | (bad-continuation)
src/somemodule/commands.py:1:0: C0111: Missing module docstring (missing-docstring)
src/somemodule/commands.py:21:-1: W0105: String statement has no effect (pointless-string-statement)
src/somemodule/commands.py:29:4: C0103: Variable name "p" doesn't …Run Code Online (Sandbox Code Playgroud) 我正在努力确保使用常规 pylint 和 pycodestyle 的 python 代码文件必须为 10/10。但是,我正在从函数中的“局部变量太多”中做出艰难的改变。由于整个套件的时间问题,功能可能会拆分。请提出一些最佳实践或建议。
提前致谢!!
我有一个Django应用程序并使用GitHub进行CI.现在我遇到的问题是,每次合并时,我都会遇到与常量导入的合并冲突.另一个开发人员导入的常量经常变化,我也是如此.目录树看起来像这样:
main_app >
...main_app
...api
...aws_lambda
...billing
...utils
...and many other directories
Run Code Online (Sandbox Code Playgroud)
每个子应用程序都有自己的文件constants.py.常量导入看起来像这样:
from utils.constants import const1, const2, const3, const4
from billing.constants import const5, const6
Run Code Online (Sandbox Code Playgroud)
我将来如何重写这些导入以减少合并冲突?有没有比下面更好的方式?
import utils.constants as utils_const
import billing.constants as billing_const
...
var = utils_const.const1
Run Code Online (Sandbox Code Playgroud)
在Django应用程序中存储常量的最佳实践是什么?
昨天我在 Google Cloud Shell 中的 python 脚本开始包含以下关于行长度的 pycodestyle 警告:
[pycodestyle] E501 line too long (85 > 79 characters)
虽然有些警告/评论很有用,但有些只是令人讨厌,我希望能够配置警告,例如将可接受的长度扩展到超过 79 个字符。是否可以包含 setup.cfg 或类似文件来配置这些警告,以及它需要在 Cloud Shell 目录结构中的哪个位置?
谢谢,克里斯
有没有办法配置 python 项目以忽略pycodestyle项目方面的特定指令?
.pycodeignore即在项目的根目录中添加一个文件,其中包含以下条目:
E302
E266
Run Code Online (Sandbox Code Playgroud)
ETC?
pycodestyle ×9
python ×7
pep8 ×5
pylint ×3
flake8 ×2
python-3.x ×2
autopep8 ×1
constants ×1
django ×1
jupyter-lab ×1