Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 模块对象没有属性';屏幕';_Python_Python 3.x - Fatal编程技术网

Python 模块对象没有属性';屏幕';

Python 模块对象没有属性';屏幕';,python,python-3.x,Python,Python 3.x,我正在自学python。在上,当我在给定的示例中键入代码时,出现以下错误-- python3.2(r32:884452011年3月25日19:28:28) [GCC 4.5.2]关于linux2 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>进口海龟 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“turtle.py”,第2行,在 wn=tutle.Screen() AttributeError:“模块”对象没有“屏幕”属性 >>> 这是我需要下载和安装

我正在自学python。在上,当我在给定的示例中键入代码时,出现以下错误--

python3.2(r32:884452011年3月25日19:28:28)
[GCC 4.5.2]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口海龟
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“turtle.py”,第2行,在
wn=tutle.Screen()
AttributeError:“模块”对象没有“屏幕”属性
>>> 
这是我需要下载和安装的东西吗?我试着查看docs.python.org,但读了所有这些科技文章后,我的鼻子开始流血。
请给我指一下正确的方向好吗?谢谢。

重命名
turtle.py
。它与导入的同名模块冲突

我测试了该站点的代码在Python2.6中工作(没有安装任何外部包)

导入名为
spam
的模块时,解释器在当前目录中搜索名为
spam.py
的文件,然后在环境变量
PYTHONPATH
指定的目录列表中搜索

因此Python解释器正在查找您的
turtle.py
文件,但没有在该文件中看到
屏幕

包含一些关于如何调试此类问题的好提示。确定导入模块在文件系统上的位置的最直接方法可能是使用
repr(module)
,或者在REPL提示符下键入模块名称,例如:

>>> turtle
<module 'turtle' from '/usr/lib/python2.6/lib-tk/turtle.pyc'>
海龟 可能是正确的。看起来您有一个名为
turtle.py
的文件,Python在安装Python时使用了这个文件

要追踪这些问题:

% python
Python 2.7.1 (r271:86832, Jan 29 2011, 13:30:16) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
[...] # Your ${PYTHONPATH}
>>> import turtle
>>> turtle.__file__
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/turtle.pyc' # Should be under your Python installation.
>>> 
如果你看到这样的情况:

>>> import turtle
>>> turtle.__file__
'turtle.py'
然后,您需要将当前工作目录中的
turtle.py
(以及任何相应的
turtle.pyc
turtle.pyo
文件)移到一边

根据下面的注释,您可以通过调用
help()
找到关于模块的大量信息,包括其路径名和内容。例如:

>>> import turtle
>>> help(turtle)

人们可能遇到的另一个问题是Linux系统上的安装问题。在我的Windows机器上,“海龟”就在那里,我可以毫无问题地导入海龟。当我尝试在Ubuntu中导入turtle时,它没有找到模块,所以我尝试安装它

当我安装turtle时,它安装了一个包'turtle',这显然是非常不同的:“turtle是一个HTTP代理,其目的是限制到特定主机名的连接……”这个'turtle'肯定没有“屏幕”或任何与小海龟有关的东西。因此,在
模块没有属性'Screen'
的问题上,我最终遇到了与用户相同的错误

对于Ubuntu,我需要做的是:

sudo pip uninstall turtle
sudo apt-get install python-tk

然后,当我导入turtle时,找到了所有预期的模块。

可能不相关,但我花了一些时间跟踪相同的错误并找到了不同的原因:我的项目文件夹中有一个名为“copy.py”的文件

这个“copy.py”是一个赋值,用于生成一个返回列表深度副本的函数。海龟库从“复制”中导入“deepcopy”;事实证明,python中已经有了一个“copy.py”(我从未见过/使用过)&在我的项目文件夹中有一个名为“copy.py”的文件,这导致turtle导入了错误的copy.py,这导致在turtle中抛出错误(我的copy.py分配的deepcopy函数与python中的函数工作方式不同)


这是一个更一般的建议,但最好仔细检查并确保没有任何文件名与项目中使用的实际python导入冲突。这里列出的东西太多了,但是海龟使用的有:tkinter、types、math、time、inspect、sys和copy。如果您的文件夹中有任何带有.py的文件(例如,如果您以前创建了一个inspect.py),turtle将加载该文件,而不是内置库&将无法工作。

转到保存python文件的目录。有一个名为turtle.py的文件。要么删除它,要么重命名它。这会奏效的。
谢谢,

+1提供完整的答案。除了调用
\uuu文件
之外,您还可以执行
repr(turtle)
(甚至只需键入
turtle
)并查看文件的完整路径,例如
谢谢@Adam。我通常使用
help()。我想《乌龟》。_文件_
对这个答案更为简洁。啊,你说得对。很高兴提及
help()
特别是对于那些热衷于自学Python的人。谢谢你的帮助!我在我的工作目录中重命名了turtle.py文件,这一次,错误消息显示了一些关于“坏幻数”错误的信息。进入谷歌,我在stackoverflow上发现了一条关于此错误消息的线程。事实证明,解决方案是删除我工作目录中的turtle.pyc文件。成功了!我欣赏这两个答案;我感到很遗憾,我只能对一个答案投最好的票。@Now Open:很高兴能提供帮助。已更新我的答案,以包含已编译的文件。这最好用作注释。
sudo pip uninstall turtle
sudo apt-get install python-tk