• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Pycharm : Cannot find reference ‘xxx’ in __init__.py -python问题的几种解决方案

error 来源:feiyihexin 15次浏览

Python 编程从入门到实践 第12章程序复现中的问题解决

综述

首先声明:这不是一个程序错误! 这不是一个程序错误! 这不是一个程序错误!
但是本着一个科学严谨(强迫症本强)的态度,必须要消除这个警告!!!
这只是Pycharm 这个IDE的bug,不影响程序的运行。如果将程序在Sublime 或者spyder中运行就不会出现这种错误。

下面以pygame包为例说明。

源程序

import sys
import pygame

def run_game():
    '''初始化游戏并创建一个屏幕对象'''
    pygame.init()
    screen = pygame.display.set_mode((1200, 800))
    pygame.display.set_caption("Alien Invasion")

    #开始游戏的主循环
    while True:
        #监视键盘鼠标事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

        pygame.display.flip()

run_game()

运行结果警告信息

在输出结果时,不会出现任何问题。但是会在

pygame.init()
pygame.QUIT

这两个地方出现 “Cannot find reference ‘xxx’ in init.py” 的警告。
并且,在编辑代码时,使用Tab键,也不会快捷出现该方法和属性。

问题解决方案

首先,我的 pygame 包是利用 pip 工具安装的,不是在pycharm中利用 project interpreter 下载的。开发环境是python3.6 Windows10.
whl下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
具体怎么使用pip安装,网上有很多资料。

解决方案1

由于该包不是在pycharm中下载的,所以由于pycharm自身的bug,导致不能完全的兼容。但是在pycharm中利用 project interpreter 下载,又会提示没有找到该包,无奈只能去下载whl文件。
有的包不能在project interpreter 中直接下载,需要先下载好了whl文件在外部安装(pip)好了,再次进入project interpreter 中重新安装在pycharm中)

下载完成后,只需再次进入(步骤如下):
file -> setting ->project:[filename自己的文件名] -> project interpreter ->点击‘+’号

完成后会有提示成功的消息:

这样一来,包就在pycharm中安装好了,再回到程序查看,警告就会消失,并且使用Tab键,也会快捷出现该方法和属性。
https://stackoverflow.com/questions/23248017/cannot-find-reference-xxx-in-init-py-python-pycharm

解决方案2

解决步骤如下:
首先右击该程序的文件夹(就是file菜单下的那个文件)Mark Directory – > Souces Root

点击之后,下面的文件就变了颜色了。就可以了。

同样的,另一种设置方法是:
file -> setting ->project:[filename自己的文件名] -> project structure ->点击‘+’号
(注意不是project interpreter)

但是要清楚的是,你可以添加多个Souce Folders,但只可以一个 content Root。

另外,如果使用这种方式,可能关闭pycharm之后,编辑的转态不会被保留,如果先要保留可以使用这种退出方式:
File -> Invalidate Caches / Restart… -> Invalidate and Restart

来源:https://stackoverflow.com/questions/20479696/pycharm-unresolved-reference-error-on-the-ide-when-opening-a-working-project

总结

虽然可能用处不大,但是作为一个python初学者,能够解决这个问题,还是很满足了~ 也希望能够帮助到看到这篇文章的你~ 加油吧,少年!

panda!panda!panda!


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)