2017-08-04 158 views
0

我看了看四周,然後再發布,但這裏給出的解決方案不起作用:MoviePY UTF8錯誤

moviepy stackOF solution

我使用Python 2.7.13與ImageMagick的-7.0.6-Q16

我的代碼是這樣的:

# -*- coding: utf-8 -*- 
#Installation de FFMPG.EXE s'il n'est pas déja installé 
    try: 
     import imageio 
     imageio.plugins.ffmpeg.download() 
    except Exception as e: 
     print e.__doc__ 
     print e.message 
    else: 
     print u"FFMPG.EXE déjà installé" 

from moviepy.editor import TextClip 

txtclip = TextClip('TestText', fontsize=50, color='red') 
txt_image = txtclip.get_frame(0) 

我得到這個錯誤:

=== RESTART: C:\Users\wanli\Desktop\Training python\Montage vidéo\Timo.py  === 
FFMPG.EXE déjà installé 

[MoviePy] This command returned an error ! 
Traceback (most recent call last): 
File "C:\Users\wanli\Desktop\Training python\Montage vidéo\Timo.py", line 14, in <module> 
txtclip = TextClip('TestText', fontsize=50, color='red') 
File "C:\Python27\lib\site-packages\moviepy\video\VideoClip.py", line 1220, in __init__ 
subprocess_call(cmd, verbose=False) 
File "C:\Python27\lib\site-packages\moviepy\tools.py", line 50, in subprocess_call 
raise IOError(err.decode('utf8')) 
File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode 
return codecs.utf_8_decode(input, errors, True) 
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 202: invalid continuation byte 

我試圖讓我的TextClip像:

mytext="TestText" 
mytext_utf=mytext.encode('utf8') 
txtclip = TextClip(mytext_utf, fontsize=50, color='red') 

但它不工作...

我也試過在

C:\Python27\Lib\site-packages\moviepy\video\VideoClip.py 

去我就去排隊1173

if txt is not None: 

我在1174行添加了:

txt.encode('utf8') 

它不工作,要麼...

我總是得到這個錯誤UTF8!這真讓我抓狂 ! :)

謝謝你幫我理解! :)

回答

1

好吧,我解決了,這是不是我的文字,但在哪裏我的「 py」爲文件的路徑....

"C:\Users\wanli\Desktop\Training python\Montage vidéo\Timo.py" 

我把它改爲:

"C:\Users\wanli\Desktop\Training python\Montage video\Timo.py" 

沒有更多的錯誤....

0

在moviepy/tools.py 49行(以及這就是線在當前的主分支49至少),取代這樣的:

raise IOError(err.decode('utf8')) 

raise IOError(err.decode('utf-8', 'replace') 

或者乾脆:

raise IOError(err) 

這不會解決根本問題,但至少你應該會得到原始的錯誤消息,即使有點亂碼。

您可能還想發佈關於項目git的bug報告 - 從任意編碼解碼本身就是一個錯誤。