2014-09-29 17 views
13

我使用Windows 8.1 64位否认蟒蛇PermissionError:[WinError 5]使用Access的moviepy写GIF

我的代码

import pdb 
from moviepy.editor import * 

clip = VideoFileClip(".\\a.mp4") 
clip.write_gif('.\\aasda.gif') 

的例外是在write_gif方法

Traceback (most recent call last): 
    File "C:\abi\youtubetogif_project\test.py", line 5, in <module> 
    clip.write_gif('G:\\abi\\aasda.gif') 
    File "<string>", line 2, in write_gif 
    File "C:\Python34\lib\site-packages\moviepy-0.2.1.8.12-py3.4.egg\moviepy\decorators.py", line 49, in requires_duration 
    return f(clip, *a, **k) 
    File "C:\Python34\lib\site-packages\moviepy-0.2.1.8.12-py3.4.egg\moviepy\video\VideoClip.py", line 435, in write_gif 
    dispose= dispose, colors=colors) 
    File "<string>", line 2, in write_gif 
    File "C:\Python34\lib\site-packages\moviepy-0.2.1.8.12-py3.4.egg\moviepy\decorators.py", line 49, in requires_duration 
    return f(clip, *a, **k) 
    File "C:\Python34\lib\site-packages\moviepy-0.2.1.8.12-py3.4.egg\moviepy\video\io\gif_writers.py", line 186, in write_gif 
    stdout=sp.PIPE) 
    File "C:\Python34\lib\subprocess.py", line 848, in __init__ 
    restore_signals, start_new_session) 
    File "C:\Python34\lib\subprocess.py", line 1104, in _execute_child 
    startupinfo) 
PermissionError: [WinError 5] Access is denied 

我将脚本移动到另一个文件夹和分区,运行moviepy依赖和python作为管理员,关闭UAC仍然给我错误

+5

linux是我的答案呢? – 2014-09-29 02:37:08

+0

Python在Windows上运行良好,并且已有多年。我想我们可能需要更多关于VideoFileClip类试图做什么的信息。在创建子进程时似乎打破了。所以我认为它更多的是与你正在写新文件的文件夹/分区相关。例如,它试图启动的子进程是什么?它试图从哪里启动? – otherchirps 2014-09-29 04:10:42

+2

您是否按照[影片文档](http://zulko.github.io/moviepy/install.html#linking-to-imagemagick)指示“Windows用户在手动安装MoviePy之前进入影片/conf.py文件并提供名为convert的ImageMagick二进制文件的路径“? – cgohlke 2014-09-29 04:56:57

回答

19

我也遇到过这个问题,解决方法通常是确保以管理员身份运行程序(右键单击,以管理员身份运行。)

-1

我遇到了完全相同的问题,出现Access Denied错误这是从子进程模块中产生的。原来是bug in Python。幸运的是,它已经被解决了。将您的Python更新到最新版本应该可以解决问题。例如,我在这台机器上仍然是2.7.3,并且更新到2.7.9解决了它。但是这个bug也影响了Python的3.2和3.3分支。

+0

您链接的错误是不同的,只有当子进程试图终止进程时发生。 OP的问题(以及我的问题)正在尝试打开过程时发生。 – SPoage 2015-05-04 07:13:42

+0

@SPoage:我不知道。对于我来说,它发生在做OP完全相同的事情时,即用MoviePy写一个VideoFileClip。你想要做什么,以及哪个Python版本? – Junuxx 2015-05-04 07:30:51

+0

我的案子是PEBKAC的结果。我遗漏了一部分路径,结果我试图在目录上打开一个新的子进程。碰巧,这不起作用。 :) – SPoage 2015-05-04 15:08:37

0

也许你错误地设置了python3的权限。例如,如果文件权限设置为

`os.chmod('spam.txt', 0777)` --> This will lead to SyntaxError 

此语法用于Python2。现在如果你改变如: os.chmod('spam.txt', 777) - >这仍然是最糟糕的!您的许可将被错误设置,因为它们不是“八进制”,而是十进制。

之后,你会得到许可的错误,如果你尝试,例如删除文件: PermissionError:[WinError 5]访问被拒绝:

解决方案python3是很容易的: os.chmod('spam.txt', 0o777) - >语法现在ZERO和o“0o”

1

有时它会在某些安装没有正确完成时发生故障,但仍然会打开进程和文件。因此,当您尝试再次运行安装并且安装需要删除时,您会看到观察到的错误。在我的情况下关闭python进程和命令提示符利用帮助