为鸡蛋中的模块配置 pylint。 (VS代码)

Configure pylint for modules within eggs. (VS code)

项目结构

我有以下文件夹结构

|
|- src
|   |- mypackage
|   |    |- __init__.py
|   |    |- mymodule.py
|   |- utils.egg
|- main.py

mymodule.py 文件中我可以导入鸡蛋并将其添加到 sys.path 作为

import sys
sys.path.append('src/utils.egg')
import utils

调用 main.py 时一切正常 (python -m main)。

问题

问题来自pylint。首先,它在 mymodule.py 文件

中显示以下消息

Unable to import 'utils' pylint(import-error)

如果我在导入时征求建议 (CRTL + Space),我会得到

utils.build
     .dist
     .utils
     .setup
#     |- suggestions

并且从 utils.utils 我可以访问 utils 模块中的实际 类 / 函数。当然如果我导入utils.utils,执行main脚本时,会弹出导入错误。

额外信息

如果您想知道 EGG-INFO/SOURCE.txt 文件看起来像

setup.py
utils/__init__.py
utils/functions.py
utils.egg-info/PKG-INFO
utils.egg-info/SOURCES.txt
utils.egg-info/dependency_links.txt
utils.egg-info/top_level.txt
utils/internals/__init__.py
utils/internals/somemodule.py
utils/internals/someothermodule.py

此外,egg 中没有 builddist 文件夹。

这是 Pylint 本身的问题,而不是 Python 扩展,因此归结为您需要配置 Pylint。

至于你应该复制一个 egg 还是安装它,你应该将它安装到你的虚拟环境中,或者至少复制适当的 .pth 文件以使 egg 目录正常工作。