首先声明:这不是一个程序错误! 这不是一个程序错误! 这不是一个程序错误!
但是本着一个科学严谨(强迫症本强)的态度,必须要消除这个警告!!!
这只是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安装,网上有很多资料。
由于该包不是在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
解决步骤如下:
首先右击该程序的文件夹(就是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!