python提示没有canvas这个模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python提示没有canvas这个模块相关的知识,希望对你有一定的参考价值。

python提示没有canvas这个模块。如下为绘图不成功的代码
from tkinter import *
import math

WIDTH, HEIGHT = 510, 210
ORIGIN_X, ORIGIN_Y = 2, HEIGHT/2 #原点

SCALE_X, SCALE_Y = 40, 100 #x轴、y轴缩放倍数
ox, oy = 0, 0
x, y = 0, 0
arc = 0 #弧度
END_ARC = 360 * 2 #函数图形画两个周期

root = Tk()
c = Canvas(root, bg = 'white', width = WIDTH, height = HEIGHT)
c.pack()

c.create_text(200, 20, text = 'y = cos(x)')
c.create_line(0, ORIGIN_Y, WIDTH, ORIGIN_Y)
c.create_line(ORIGIN_X, 0, ORIGIN_X, HEIGHT)
for i in range(0, END_ARC+1, 10):
arc = math.pi * i / 180
x = ORIGIN_X + arc * SCALE_X
y = ORIGIN_Y - math.cos(arc) * SCALE_Y
c.create_line(ox, oy, x, y)
ox, oy = x, y
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
直接执行返回 0 然后没有显示图片
在这里插入图片描述

2、解决办法
在最下面加一行代码:

root.mainloop()
1
完整代码如下:

from tkinter import *
import math

WIDTH, HEIGHT = 510, 210
ORIGIN_X, ORIGIN_Y = 2, HEIGHT/2 #原点

SCALE_X, SCALE_Y = 40, 100 #x轴、y轴缩放倍数
ox, oy = 0, 0
x, y = 0, 0
arc = 0 #弧度
END_ARC = 360 * 2 #函数图形画两个周期

root = Tk()
c = Canvas(root, bg = 'white', width = WIDTH, height = HEIGHT)
c.pack()

c.create_text(200, 20, text = 'y = cos(x)')
c.create_line(0, ORIGIN_Y, WIDTH, ORIGIN_Y)
c.create_line(ORIGIN_X, 0, ORIGIN_X, HEIGHT)
for i in range(0, END_ARC+1, 10):
arc = math.pi * i / 180
x = ORIGIN_X + arc * SCALE_X
y = ORIGIN_Y - math.cos(arc) * SCALE_Y
c.create_line(ox, oy, x, y)
ox, oy = x, y

root.mainloop()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
然后即可绘制出图片
在这里插入图片描述

3、原因
root到root.pack()之间,是设计的部件的类型,尺寸,样式,位置,然后绑定一个事件。mainloop就进入到事件(消息)循环。一旦检测到事件,就刷新组件。那是网上的说法,我的理解是如果没有mainloop,它也会绘图,但是绘图完成后就关闭了程序,所以就好像没有显示一样,加上mainloop后,它会监听你的行为,有关闭它才会结束程序
参考技术A 如果Python提示没有Canvas这个模块,可能是因为你未安装Tkinter库,请尝试使用pip命令安装它:pip install tkinter。

python2

一、管理库的安装

安装pip

提示报错:安装pip提示No module named ‘setuptools‘

Windows环境下Python默认是没有安装setuptools这个模块的,这也是一个第三方模块。下载地址为http://pypi.python.org/pypi/setuptools

技术分享

技术分享

下载后直接运行ez_setup.py

参考地址:http://www.cnblogs.com/BeginMan/archive/2013/05/28/3104928.html

二、利用pip安装库文件

 

 

 

参考地址:http://www.cnblogs.com/yuanzm/p/4089856.html

以上是关于python提示没有canvas这个模块的主要内容,如果未能解决你的问题,请参考以下文章

离线合成联想到的--canvas合成水印

在将python turtle canvas转换为位图时如何保持画布大小

GUI的最终选择Tkinter模块练习篇

canvas学习

JavaScript之Canvas画布

Nodejs找不到模块'../build/Release/canvas'