2014-09-29 39 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進程和命令提示符利用幫助