2017-08-04 224 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报告 - 从任意编码解码本身就是一个错误。