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

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!

  • 89
    点赞
  • 210
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值