使用开发安装后,警告对未解决的引用不起作用

Posted

技术标签:

【中文标题】使用开发安装后,警告对未解决的引用不起作用【英文标题】:Warnings don't work about unresolved references after using development install 【发布时间】:2021-06-17 15:40:56 【问题描述】:

我有一个 PyCharm 错误,在我使用开发安装 pip install -v -e . 后,IDE 不会警告我任何未解决的引用。例如,对于未解析的引用,您通常会得到以下信息:

但现在在开发安装后未解析的引用不会给出任何警告(对于任何名称、函数、变量、模块...):

我认为这个错误是在我named a module by mistake with a dash(在setup.py)并安装它之后触发的,如下所示:

entry_points=
    "console_scripts": [
        "adapt-entry = adapt.entry.point-of-entry:run_program",
    ],

它一开始是安装的,过了一段时间 IDE 警告该名称是非法的。但是在我将名称更改为使用下划线而不是破折号后,如果我使用开发安装,IDE 的参考检查对于所有项目和解释器都已损坏。

我尝试了所有常见的解决方案from this list 来解决参考错误(缓存无效、删除.idea 文件夹、新的venv、更改解释器、重新启动、重新启动等)。但除了清除 IDE 范围内的用户首选项(我想避免它)或重新安装 IDE(更糟)之外,我尝试了列表中的所有内容,但没有解决问题。对于所有效果,我的参考检查在我使用开发安装的那一刻就被破坏了。

我使用通常的src 布局,最小的setup.py 和常规的venv,文件和目录结构如下:

C:.
adapt
├───src
│    ├───data
│    ├─  __init__.py
│    │
│    ├───entry
│    ├─  point_of_entry.py
│    └─  __init__.py
│
setup.py

还有一个最小的setup.py

setup(
    name='adapt',
    version='0.1',
    package_dir='': 'src',
    zip_safe=False,
    packages=find_packages(where='src'),
    package_data=
        "adapt.data": ["*.txt", "*.csv"],
        'adapt': ['py.typed'],
    ,
    include_package_data=True,
    entry_points=
        "console_scripts": [
            "adapt_entry = adapt.entry.point_of_entry:run_program",
        ],
      
),

更常见的错误是引用未解析,但在这种情况下恰恰相反:代码运行并找到引用。 问题是(如第二张截图所示)它没有警告我故意引入的任何未解决的引用

但是当我进行检查时,所有其他警告似乎都正确发出。 (我想我已经激活了正确的检查,如下面的屏幕截图所示。)如何解决这个短暂擦除 IDE 范围内的用户偏好或完全重新安装 IDE?会不会有一些我没有意识到的间接原因?

【问题讨论】:

好的,显然我刚刚找到了解决它的方法。将检查从警告更改为错误并禁用阅读器模式应发出带有红色涂鸦的必要错误。我仍然欢迎对这个问题做出更好的解释。 【参考方案1】:

Reader mode引起的,请投给https://youtrack.jetbrains.com/issue/PY-45708(标题附近点赞)

【讨论】:

优秀的链接,它权威地解释了一切。【参考方案2】:

只是为了扩展@user2235698 的答案,这也发生在我身上,因为Reader mode 在我的IDE 中被激活。

您可以通过以下方式轻松禁用此功能:

打开设置(ctrl + alt + s) 在搜索框中搜索“阅读器模式”或导航到编辑器 |阅读器模式 禁用Enable Reader Mode 选项 点击应用

【讨论】:

以上是关于使用开发安装后,警告对未解决的引用不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu 12.04 R install.packages() 不起作用。没有警告,没有安装

空标签在 PhpStorm (Laravel 7) 中的某些浏览器警告中不起作用

如何解决java环境变量设置不起作用的问题

npm install 给出警告,npm audit fix 不起作用

发布 Flutter 应用后,Google 登录不起作用

OTA 安装应用程序(越狱)不起作用