Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
294 views
in Technique[技术] by (71.8m points)

python - Warnings don't work about unresolved references after using development install

I have a bug with PyCharm, after I use development install pip install -v -e . the IDE does not warn me about any unresolved references. For example, with unresolved references normally you get this:

screenshot unresolved reference

But now after development install unresolved references don't give any warnings (for any names, functions, variables, modules...):

screenshot without unresolved reference

I think this bug was triggered after I named a module by mistake with a dash (in setup.py) and installed it, like this:

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

It installed at first, after a while the IDE warned the name was illegal. But after I changed the name to use underscores instead of the dashs the reference inspections of the IDE had become broken for all projects and interpreters if I use development install.

I tried all the usual solutions from this list for reference errors (invalidating cache, deleting .idea folder, new venv, changing interpreter, restart, reboot, etc...). But except clearing IDE wide user preferences (I want to avoid it) or reinstalling the IDE (even worse) I tried everything on the list and nothing solved the problem. For all effects my reference inspections are broken the moment I use development install.

I'm using the usual src layout with a minimal setup.py and a regular venv, the following file and directory structure:

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

and a minimal 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",
        ],
      }
),

The more common error is references not resolving, but in this case it's the opposite: the code runs and finds the references. The problem is (as shown in the 2nd screenshots) it doesn't warn about any unresolved references I introduce on purpose.

But when I run an inspection all the other warnings seem to be issued correctly. (I think I have the proper inspections activated, shown in the screenshot below.) How to solve this short wiping IDE wide user preferences or reinstalling the IDE altogether? Could there be some indirect cause I'm failing to realize?

IDE settings of inspections

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

It is caused by the Reader mode, please vote for https://youtrack.jetbrains.com/issue/PY-45708 (thumbs up near the title)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...