python导入txt时wrongformat_从子模块导入Python包时避免pylint投诉

本文介绍了如何在不完全禁用pylint检查的情况下,处理导入txt文件时遇到的'wrong-import-position'警告。建议使用内联的disable/enable块来针对特定导入忽略该警告,并探讨了避免修改sys.path的方法,包括修改PYTHONPATH、在虚拟环境中安装子模块以及使用符号链接。此外,还讨论了不同解决方案的优缺点和适用场景。
摘要由CSDN通过智能技术生成

配置pylint

在.pylintrc中禁用wrong-import-position检查程序是最简单的解决方案,但会丢弃有效的警告。

更好的解决方案是告诉pylint忽略这些导入的wrong-import-position,内联。误报导入可以嵌套在enable disable块中,而不会丢失其他任何覆盖范围:import sys

sys.path.insert(0, './bar')

#pylint: disable=wrong-import-position

from bar.eggs import Eggs

from foo.ham import Ham

#pylint: enable=wrong-import-position

Ham()

# Still caught

import something_else

然而,如果wrong-import-order在.pylintrc中被禁用,这确实有一个轻微的缺陷,即风趣。

避免修改sys.path

有时不需要的绒线警告源于错误地开始处理问题。我已经想出了很多方法来避免首先修改sys.path,尽管它们不适用于我自己的情况。

也许最直接的方法是修改PYTHONPATH以包含子模块目录。但是,这必须在每次调用应用程序时指定,或者在系统/用户级别上修改,这可能会损害其他进程。变量可以在包装外壳或批处理脚本中设置,但这需要进一步的环境假设或限制对Python调用的更改。

一种更现代、更少麻烦的模拟方法是在虚拟环境中安装应用程序,并简单地将子模块路径添加到虚拟环境中。

如果子模块包含setuptools setup.py,则可以简单地安装它,从而避免了路径定制。这可以通过维护对诸如pypi(私有包的非起始者)之类的存储库的发布,或者通过利用/滥用pip install -e直接或从其存储库安装子模块包来实现。虚拟环境再次通过避免潜在的跨应用程序冲突和权限问题,使此解决方案更加简单。

如果目标操作系统集可以限制为具有强符号链接支持的操作系统集(实际上,这至少排除了10个窗口中的所有窗口),则子模块可以链接到以绕过包装目录,并将目标包直接放在工作目录中:foo/

bar/ --> bar_src/bar

bar_src/

bar/

__init__.py

eggs.py

test/

setup.py

foo/

__init__.py

ham.py

main.py

这样做的缺点是限制了应用程序的潜在用户,并用混乱的混乱填充了foo目录,但在某些情况下可能是一个可接受的解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值