Python PyCharm:找不到引用';xxx和x27;在';turtle.py';

Python PyCharm:找不到引用';xxx和x27;在';turtle.py';,python,reference,pycharm,Python,Reference,Pycharm,我试着画一个内置了自由乌龟的五角星 环境: 视窗10 Python 3.5 PyCharm社区版2017.1.5 代码: 导入海龟 海龟。填充颜色(‘红色’) 乌龟,开始填充 尽管如此: 乌龟前进(200) 海龟,对(144) 如果abs(turtle.pos())小于1: 打破 乌龟 turtle中的所有方法,包括'fillcolor'、'begin_fill'、'forward'、'right'和'pos'等,都会受到PyCharm的警告,“在'turtle.py'中找不到引用'xxx

我试着画一个内置了自由乌龟的五角星

环境:

  • 视窗10
  • Python 3.5
  • PyCharm社区版2017.1.5
代码:

导入海龟
海龟。填充颜色(‘红色’)
乌龟,开始填充
尽管如此:
乌龟前进(200)
海龟,对(144)
如果abs(turtle.pos())小于1:
打破
乌龟
turtle中的所有方法,包括'fillcolor'、'begin_fill'、'forward'、'right'和'pos'等,都会受到PyCharm的警告,“在'turtle.py'中找不到引用'xxx'”,并且这些方法的自动完成失败,同时出现警告。但奇怪的是,这个脚本能够像预期的那样正常、正确地运行

我一直在寻找答案,有几个相关的问题,但实际上不一样:

  • 在“\uuuu init\uuuuuu.py”中找不到引用“xxx”
  • 未解析的引用“打印”
  • 以上问题的所有答案都不能解决这个问题

    根据第一批评论和回答,提供的更多信息如下:

    • 我几乎相信我正在使用turtle for Python3.x,因为我的笔记本电脑中只有一个turtle.py文件,位于目录“C:\Python35\Lib”下。顺便说一句,如果我仍然可能使用turtle for Python2.x,我如何检查此信息以及如何在默认目录中更新此内置库
    • 我几乎相信我没有使用virtualenv,我的项目的解释器是Python 3.5.2

    (不幸的是,我仍然无法上传图像)

    问题出在\Lib\turtle.py中

    魔法变量all定义如下:

    __all__ = (_tg_classes + _tg_screen_functions + _tg_turtle_functions +
               _tg_utilities + ['Terminator']) # + _math_functions)
    
    PyCharm在扫描包时不执行此代码。因此PyCharm无法定义哪些函数可以在模块级使用

    因此,您可以更改turtle.py:

    # __all__ = (_tg_classes + _tg_screen_functions + _tg_turtle_functions +
    #            _tg_utilities + ['Terminator']) # + _math_functions)
    __all__ = ['ScrolledCanvas', 'TurtleScreen', 'Screen', 'RawTurtle', 'Turtle', 'RawPen', 'Pen', 'Shape', 'Vec2D', 'back',
               'backward', 'begin_fill', 'begin_poly', 'bk', 'addshape', 'bgcolor', 'bgpic', 'bye', 'clearscreen',
               'colormode', 'delay', 'exitonclick', 'getcanvas', 'getshapes', 'listen', 'mainloop', 'mode', 'numinput',
               'onkey', 'onkeypress', 'onkeyrelease', 'onscreenclick', 'ontimer', 'register_shape', 'resetscreen',
               'screensize', 'setup', 'Terminator', 'setworldcoordinates', 'textinput', 'title', 'tracer', 'turtles',
               'update', 'window_height', 'window_width', 'write_docstringdict', 'done', 'circle', 'clear', 'clearstamp',
               'clearstamps', 'clone', 'color', 'degrees', 'distance', 'dot', 'down', 'end_fill', 'end_poly', 'fd',
               'fillcolor', 'filling', 'forward', 'get_poly', 'getpen', 'getscreen', 'get_shapepoly', 'getturtle', 'goto',
               'heading', 'hideturtle', 'home', 'ht', 'isdown', 'isvisible', 'left', 'lt', 'onclick', 'ondrag', 'onrelease',
               'pd', 'pen', 'pencolor', 'pendown', 'pensize', 'penup', 'pos', 'position', 'pu', 'radians', 'right', 'reset',
               'resizemode', 'rt', 'seth', 'setheading', 'setpos', 'setposition', 'settiltangle', 'setundobuffer', 'setx',
               'sety', 'shape', 'shapesize', 'shapetransform', 'shearfactor', 'showturtle', 'speed', 'st', 'stamp', 'tilt',
               'tiltangle', 'towards', 'turtlesize', 'undo', 'undobufferentries', 'up', 'width', 'write', 'xcor', 'ycor']
    
    您还可以使用Turtle类:

    T = turtle.Turtle()
    T.fillcolor('red')
    etc
    

    你正在用蟒蛇3和蟒蛇2编写代码。确保您有用于python3的turtle,我几乎相信我正在使用turtle用于python3,因为在我的PC中,目录“C:\Python35\Lib”下只有一个turtle.py。我将更新我的问题描述。这是可行的,但我的Turtle应用程序在PyCharm中运行时不会像在命令行中运行时那样响应键盘输入。
    T = turtle.Turtle()
    T.fillcolor('red')
    etc