解决:ImportError: No module named 'xxxx'-------python中关于import语句
2018-02-05 09:34
791 查看
我用的 python 3.5
1、解决方法如下:
通过上面的方法就可以正确导入tkinter模块了,最新版本
ImportError: No module named 'Tkinter'
这很有可能是因为找到的代码是python2.x的,然而却把它放在python3.x的环境下跑。其实上面的Tkinter库在python3里已经改名了,变成了tkinter,只是首字母变小写了,但是import语句是对大小写敏感的!
其实有个很好的办法来完成由2.x的代码到3.x的代码的转换,这里再以tkinter库为例,方法如下:
1.打开tkinter库的文件夹,比如我的就是C:\Python34\Lib\tkinter,查看其目录结构,如下图
2、
import tkMessageBox
改成下面:
import tkinter.messagebox #对应着tkinter文件夹底下的messagebox.py
messagebox.showinfo("title","hello world") #NameError: name 'messagebox' is not defined
[python] view
plain copy
tkinter.messagebox.showinfo("title","hello world") #正确
或者改成
[python] view
plain copy
from tkinter import messagebox #对应着tkinter文件夹底下的messagebox.py
则可以写成
[python] view
plain copy
messagebox.showinfo("title","hello world")
最后补充两点要注意的地方:
1.packages可以认为是文件夹,而modules则可以看作是文件夹下的.py文件,而各色各样的import语句归结起来就是
from packages1.packages2 import modules1
或者
import packages1.packages2.modules1
2.
[python] view
plain copy
from tkinter import *
并不是将tkinter文件夹下的所有.py文件都import,实际上只是import了__init__.py中的所有对象,比如__init__.py中有个Tk对象,所以在使用了上面这条import语句后,可以直接引用Tk:
[python] view
plain copy
root = Tk()
但是如果想使用messagebox.py里的对象,还是得老老实实地引用它:
[python] view
plain copy
from tkinter import messagebox #对应着tkinter文件夹底下的messagebox.py
1、解决方法如下:
try: # for Python2 from Tkinter import * except ImportError: # for Python3 from tkinter import *
通过上面的方法就可以正确导入tkinter模块了,最新版本
Tkinter要全部小写成
tkinter才行。
ImportError: No module named 'Tkinter'
这很有可能是因为找到的代码是python2.x的,然而却把它放在python3.x的环境下跑。其实上面的Tkinter库在python3里已经改名了,变成了tkinter,只是首字母变小写了,但是import语句是对大小写敏感的!
其实有个很好的办法来完成由2.x的代码到3.x的代码的转换,这里再以tkinter库为例,方法如下:
1.打开tkinter库的文件夹,比如我的就是C:\Python34\Lib\tkinter,查看其目录结构,如下图
2、
import tkMessageBox
改成下面:
import tkinter.messagebox #对应着tkinter文件夹底下的messagebox.py
messagebox.showinfo("title","hello world") #NameError: name 'messagebox' is not defined
[python] view
plain copy
tkinter.messagebox.showinfo("title","hello world") #正确
或者改成
[python] view
plain copy
from tkinter import messagebox #对应着tkinter文件夹底下的messagebox.py
则可以写成
[python] view
plain copy
messagebox.showinfo("title","hello world")
最后补充两点要注意的地方:
1.packages可以认为是文件夹,而modules则可以看作是文件夹下的.py文件,而各色各样的import语句归结起来就是
from packages1.packages2 import modules1
或者
import packages1.packages2.modules1
2.
[python] view
plain copy
from tkinter import *
并不是将tkinter文件夹下的所有.py文件都import,实际上只是import了__init__.py中的所有对象,比如__init__.py中有个Tk对象,所以在使用了上面这条import语句后,可以直接引用Tk:
[python] view
plain copy
root = Tk()
但是如果想使用messagebox.py里的对象,还是得老老实实地引用它:
[python] view
plain copy
from tkinter import messagebox #对应着tkinter文件夹底下的messagebox.py
相关文章推荐
- 解决:ImportError: No module named 'xxxx'-------python中关于import语句的认识2
- 解决:ImportError: No module named 'xxxx'-------python中关于import语句的认识2
- 解决python安装selenium报错问题ImportError: No module named 'selenium'
- python ImportError: No module named 的错误解决思路和方法
- Python import requests Error: No module named 'requests' 解决方法
- 解决python安装selenium报错问题ImportError: No module named 'selenium'
- 关于python3.5-32 pyinstaller 启动时提示"ImportError: No system module 'pywintypes' (pywintypes35.dll)的解决方法"
- Python问题解决:ImportError: No module named 'pygal.i18n'
- 在安装PyGTK时总是提示python: ImportError: No module named bz2
- ImportError: No module named _tkinter, please install the python-tk package
- DjangoUeditor ImportError: No module named ‘widgets’的解决办法
- python: ImportError: No module named bz2
- ImportError: No module named _tkinter, please install the python-tk package
- ImportError: No module named _markerlib (Python安装第三方库时出现的错误)
- python: ImportError: No module named bz2
- 关于python里运行出现'module' object has no attribute 'xxxx'等问题解决方法
- Python 使用中出现错误:ImportError: No module named _sqlite3
- python错误:ImportError: No module named setuptools解决办法
- 关于 python ImportError: No module named 的问题及解决办法
- python和matlab混合编程,并解决error "ImportError: No module named matlab.engine"