【问题标题】:PermissionError: [WinError 5] Access is denied python using moviepy to write gifPermissionError: [WinError 5] Access is denied python using moviepy to write gif
【发布时间】:2014-09-29 01:57:56
【问题描述】:

我使用的是 Windows 8.1 64 位

我的代码

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仍然给我错误

【问题讨论】:

  • Python 在 Windows 上运行良好,并且已经使用了多年。我认为我们可能需要更多关于 VideoFileClip 类试图做什么的信息。在创建子进程时似乎正在中断。所以我认为这比你要写入新文件的文件夹/分区更重要。例如,它试图启动的子进程是什么?它试图从哪里启动它?
  • 您是否遵循documentation for moviepy 指示“Windows 用户,在手动安装 MoviePy 之前,进入 moviepy/conf.py 文件并提供名为 convert 的 ImageMagick 二进制文件的路径”?
  • 谢谢....我在没有 .exe 文件的情况下指定了它
  • 在 windows 上使用 PGAdmin 时出现此错误消息。将我们的它转为 Sophos 防病毒阻止 Python。

标签: python windows


【解决方案1】:

我也遇到过这种情况,解决方法通常是确保以管理员身份运行程序(右键,以管理员身份运行。)

【讨论】:

  • 检查您对该驱动器的权限
  • 我检查过但没有任何帮助。我在使用“pip install”时遇到了这个错误,而我使用了“python -m pip install”,它起作用了。
  • 我的工作不允许我在我的电脑上拥有管理员权限。
  • 以管理员身份运行某些东西并不是一个“真正的”解决方案,原因有很多,其中一个原因是没有显示出对潜在问题的理解......你只是在使用更大的枪
  • 我的意思是,当我忘记以管理员身份运行程序时,同样的事情发生在我身上一直(就像你从 windows cmd 运行它一样,确保 cmd 是 admin..) 它不仅“真实”而且非常常见。
【解决方案2】:

有时会在某些安装未正确完成、进程卡住或文件仍处于打开状态时发生。因此,当您尝试再次运行安装并且安装需要删除时,您会看到上述错误。就我而言,关闭 python 进程和命令提示符的使用会有所帮助。

【讨论】:

    【解决方案3】:

    这解决了我的问题

    单击任务栏中的搜索按钮并输入“cmd”。右键单击命令提示符并选择以管理员身份运行

    pip install pydirectory
    

    【讨论】:

    • 为我工作,谢谢!
    【解决方案4】:

    windows解决方法:重启docker

    在 Windows 上,我在 sam build 期间使用了 --use-container 选项

    所以,为了修复卡住的进程,我重新启动了 docker

    【讨论】:

      【解决方案5】:

      当导入的库尝试在路径“./logs/”处创建目录时,我遇到了同样的错误。

      事实证明该库试图在错误的位置创建它,即在我的 python 解释器的文件夹中而不是基础项目目录中。我通过在 PyCharm 的“运行配置”菜单中将“工作目录”路径设置为我的项目文件夹解决了这个问题。如果您使用终端来运行代码,那么您可能只需要在运行之前移动到项目文件夹中。

      【讨论】:

        【解决方案6】:

        如果您在尝试 pip install foo 时在 Jupyter/Jupyerlab 中遇到此问题,您有时可以改用 !python -m pip install foo 来解决此问题。

        【讨论】:

          【解决方案7】:

          我知道它已经很老了,有几个人已经给出了抽象的答案。 但这就是我在我的机器上解决这个问题的方法。 (感谢@DevLoverUmar 和@Vladyslav Didenko)

          pip install gym --user
          

          【讨论】:

            【解决方案8】:

            在 Windows 上,对我来说,似乎有时我会将文件夹设置为只读。

            不太确定何时,可能是在我的 Linux 启动时出现挂载失败,但递归清除该标志会有所帮助。

            【讨论】:

              【解决方案9】:

              也许你错误地设置了 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) --> 语法现在为零和 o "0o"

              【讨论】:

                猜你喜欢
                • 2016-07-21
                • 2021-01-10
                • 2022-01-25
                • 2017-08-14
                • 2020-06-20
                • 2021-03-23
                • 2020-07-22
                • 1970-01-01
                相关资源
                最近更新 更多