2015-11-07 49 views
1

我想這是我在這個網站上發現了以下情況:印刷與canvasvg.saveall()龜圖形畫布

from turtle import * 
import canvasvg 

def saveImg(): 
    name = input("What would you like to name it? ") 
    nameSav = name + ".svg" 
    ts = getscreen().getcanvas() 
    canvasvg.saveall(nameSav, ts) 

penup() 
goto(-60,-225) 
pendown() 
left(90) 
hideturtle() 
speed(0) 
forward(20) 

saveImg() 

這是錯誤消息我:

File "test.py", line 18, in <module> 
    saveImg() 
    File "test.py", line 8, in saveImg 
    saveall(nameSav, ts) 
NameError: name 'saveall' is not defined 

我知道, canvasvg包含saveall()的定義,所以我不明白爲什麼它找不到此功能。

請幫忙試試,因爲我剛開始編碼在你的答案簡單;)

回答

1

如果canvasvg包括​​,那麼你必須做canvasvg.saveall()。如果​​在turtle之內,那麼您應該擁有它,因爲您的確是from turtle import *

您的其他選項是將import canvasvg更改爲from canvasvg import *,但是I don't recommend it


UPDATE:

我試圖運行你的腳本,我注意到,實際上,canvasvg包含了兩個不同的子模塊:canvasvg.canvasvgcanvasvg.setup。我不知道爲什麼。然而,只需更換:

import canvasvg 

有了:

from canvasvg import canvasvg 

然後你就可以調用canvasvg.saveall()

但是,我發現在最後一個Python 3版本的canvasvg中發現了there is a bug。因此,您應該等待canvasvg開發人員修復它,或者您可以使用Python 2版本的canvasvg。

如果你想切換到Python 2,你應該只將input更改爲raw_input。我測試過了,它似乎完美地工作。

+0

對不起,我發佈了一個工作正在進行的代碼,當我試圖使其工作。我在開始時實際上使用了canvasvg.saveall(),但沒有成功。你有其他建議嗎? 謝謝 – Nina

+0

那麼真正的錯誤是什麼?在問題中發佈的錯誤清楚地表明'saveall()'被用來代替'canvasvg.saveall()':) – wil93

+0

我沒有運行你的腳本來查看錯誤,我更新了答案:) – wil93