首页 > 编程问答 >覆盖 python 应用程序时权限被拒绝

覆盖 python 应用程序时权限被拒绝

时间:2024-07-27 13:47:41浏览次数:15  
标签:python shutil

我使用 python 制作了一个粗略的自动更新应用程序,并使用 freeze-cx 制作了 exe 文件。

首先,该应用程序检查 firebase 服务器上是否有最新版本的文件可用,如果可用则下载 zip 文件。并且应用程序解压并覆盖文件。

    this_file_path = sys.executable if getattr(sys, 'frozen', False) else __file__
    path_here = str(Path(this_file_path).parent.absolute())

    storagePath = '/version/File'+ver_recent+'.zip'
    storage.child(storagePath).download(path='', filename=path_here+'/File.zip')
    file_name = path_here+'/File.zip'
    output_dir = path_here+"\\"
    format = "zip"
    messagebox.showinfo('Update Ongoing', 'Downloading newest version is done. Extracting file to:'+output_dir)
    shutil.unpack_archive(file_name, output_dir, format)

这里,我的意图是我的应用程序覆盖文件夹中的所有组件。

我确认,如果我告诉我的应用程序覆盖其他文件夹中的文件,并且我看到其他人们说这种机制是可能的。

正在运行的python程序有可能覆盖自身吗?

但是,在运行程序时,它会吐出错误消息:

     open(targetpath, 'wb') as target:

PermissionError: [Errno13] Permission denied: C\\Users\\bboyc\\Documents\\File_0142\\lib\\_asyncio.pyd

因为我对python还是新手,我无法猜测具体原因。我只是无法理解为什么该文件拒绝被访问。

任何人都可以告诉我发生了什么或者我失踪了吗?当未运行的文件发生这种情况时,我成功覆盖了,所以我认为这不是 _asyncio.pyd 文件的问题。


遇到的错误消息“PermissionError: [Errno 13] Permission denied”表示运行 Python 应用程序的用户没有必要的权限来修改“C:\Users\bboyc\Documents\File_0142\lib_asyncio.pyd”文件。

以下是此错误发生的几个可能原因:

  1. 文件正在被使用: 最可能的原因是另一个程序正在使用 _asyncio.pyd 文件,从而阻止了的应用程序覆盖它。这可能是 Python 解释器本身,也可能是另一个使用 asyncio 库的程序。

  2. 权限不足: 的应用程序可能没有足够的权限来修改 C:\Users\bboyc\Documents\File_0142\lib 文件夹或其内容。这在没有管理员权限的情况下运行应用程序时可能会发生。

  3. 防病毒软件干扰: 的防病毒软件可能会将的应用程序的行为解释为恶意行为,并阻止它修改文件。

以下是一些可以尝试的解决方案:

1. 确认没有其他程序正在使用该文件:

  • 关闭可能使用 asyncio 库的任何其他 Python 程序。
  • 尝试重新启动的计算机以确保没有程序在后台运行并锁定该文件。

2. 以管理员权限运行的应用程序:

  • 右键单击的应用程序的可执行文件,然后选择“以管理员身份运行”。这将授予的应用程序修改系统文件的必要权限。

3. 将的应用程序安装到具有写入权限的不同目录:

  • 避免将的应用程序安装到需要管理员权限才能修改的系统目录中,例如 C:\Program Files
  • 而是尝试将的应用程序安装到用户目录(例如 C:\Users\bboyc\My Applications )或具有适当权限的其他位置。

4. 创建一个临时文件夹并将更新后的文件解压缩到该文件夹,然后替换原始文件:

  • 这有助于避免在提取过程中出现文件锁定问题。
  • 可以使用 shutil.move() 函数替换原始文件。

5. 在防病毒软件中将的应用程序添加为例外:

  • 如果怀疑的防病毒软件是罪魁祸首,请尝试在其中添加一个例外以允许的应用程序修改文件。

示例代码(结合了解决方案 4):

import os
import shutil
import tempfile

# ...的现有代码...

# 创建一个临时文件夹
with tempfile.TemporaryDirectory() as temp_dir:
    # 将更新后的文件解压缩到临时文件夹
    shutil.unpack_archive(file_name, temp_dir, format)

    # 遍历临时文件夹中的文件
    for subdir, _, files in os.walk(temp_dir):
        for file in files:
            source_file = os.path.join(subdir, file)
            target_file = os.path.join(output_dir, os.path.relpath(source_file, temp_dir))

            # 替换原始文件
            shutil.move(source_file, target_file)

重要说明: 允许应用程序覆盖自身存在安全风险。请确保从受信任的来源下载更新,并验证更新文件的完整性,以最大程度地降低安全风险。

标签:python,shutil
From: 78753343

相关文章

  • Python数据分析案例55——基于LSTM结构自编码器的多变量时间序列异常值监测
    案例背景时间序列的异常值检测是方兴未艾的话题。比如很多单变量的,一条风速,一条用电量这种做时间序列异常值检测,想查看一下哪个时间点的用电量异常。多变量时间序列由不同变量随时间变化的序列组成,这些时间序列在实际应用中通常来自不同的传感器或数据源。多变量时间序列异......
  • 我没有 python 但我有 python3
    我最近格式化了我的笔记本电脑并安装了Ubuntu操作系统。我没有明确安装Python。为了检查它是否已预安装,我在终端中运行python--version并得到了这个:$python--versionCommand'python'notfound,butcanbeinstalledwith:sudoaptinstallpython3......
  • 基于YOLOv9的停车场空闲车位检测【python源码+UI界面+数据集+模型+语音报警+安装说明
    往期精品导航基于YOLOv9的脑肿瘤区域检测智慧课堂基于YOLOv8的学生上课行为检测基于YOLOv9+pyside的安检仪x光危险物物品检测(有ui)基于YOLOv9的PCB板缺陷检测基于YOLOv9的线路绝缘子缺陷检测【python源码+UI界面+数据集+模型+语音报警+安装说明】基于YOLOv9的道路状况检测【......
  • 1-python的数据类型与变量
    一、交互模式与脚本模式交互模式:就相当于一种问答模式,关闭即消失无法保存重用比如python自带的编译器脚本模式:可以将代码长期保存以及重复使用如何创建脚本模式:idle——file——newfile[快捷方式:idle——ctrl+n]保存:ctrl+s运行:F5二、变量(Variable)变量:会变化......
  • 2-Python数据类型——序列
    Python数据类型——序列一、序列序列是一个可以存放多个值的容器。有序序列:在序列中每个值都有对应的下标下标:就相当于酒店的房间号,方便客人的查找与酒店的管理在编程中下标的起始值与日常生活中的计数有所不同:下标的计数从0开始计数,从左往右计数:下标从0开始往右递......
  • crontab 运行 .sh 文件调用 python 脚本
    我有一个pythonselenium脚本,可以打开chrome并为我运行一些自动化任务。在crontab中直接调用python可以使用下面的行。:10.0是我运行echo$DISPLAY时得到的值。我使用的是Ubuntu22.04.4LTS5823**2DISPLAY=:10.0/usr/bin/python3/home/user/Script......
  • Pythonanywhere - ping:套接字:不允许操作
    请帮忙。我有一个Telegram机器人,当我从Bash控制台启动他时,它每60秒ping一次静态IP-它工作正常,但每天停止工作一次。我尝试使用“始终开启任务”,但在日志文件中收到“ping:套接字:不允许操作”。我有5美元帐户,我能做什么?从Bash控制台运行时我看到的内容:---17......
  • python+flask计算机毕业设计社区疫情防控物资调配平台(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景近年来,全球公共卫生事件的频发,尤其是新冠疫情的爆发,对社区治理与应急响应能力提出了前所未有的挑战。社区作为疫情防控的第一线,其物资调配......
  • python+flask计算机毕业设计四川工商学院疫情防控系统的设计与实现(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在全球新冠疫情持续蔓延的背景下,高校作为人员密集、流动性大的特殊场所,其疫情防控工作显得尤为重要。四川工商学院作为一所集教学、科研、......
  • python+flask计算机毕业设计企业人事管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着企业规模的不断扩大与业务复杂度的提升,传统的人事管理方式已难以满足现代企业对高效、精准、自动化管理的需求。企业人事管理涉及员工......