羽中飞人 2024-03-11 22:44 采纳率: 48.1%
浏览 47
已结题

pyinstaller打包遇到的问题

用管理员身份打开cmd
电脑无法CD到python文件所在的目录
然后在cmd中用语法pyinstaller -Dw 绝对路径\name.py打包python程序:

img


出现下图错误:

img


本人排除了以下问题,并尝试过以下方法,均无效:
1、这个PermissionError: [Errno 13] Permission denied: 文件是经常变化的,不是固定在某一个文件,但都是 system32\config这个文件夹下的文件
2、我尝试修改过system32\config这个文件夹的权限,但这个文件夹的安全选项,无法添加进我当前WINDOW登录的用户
3、文件没有被占用
4、之前有网友说是360和WINDOWS自带的杀毒软件问题,我均卸载了,没用
5、文件是真实存在的
6、文件没有被占用
花了一下午,均无法解决

  • 写回答

12条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-03-11 22:44
    关注

    引自免费微信小程序:皆我百晓生

    首先,根据您描述的问题,当您尝试使用管理员权限运行CMD并执行PyInstaller命令时,遇到了PermissionError: [Errno 13] Permission denied的错误,且错误涉及到了系统文件夹system32\config。针对这种情况,以下是一些可能的解决步骤:

    1. 使用正确的路径格式: 确保在CMD中指定Python文件的绝对路径正确无误,没有拼写错误或非法字符,并且路径引号使用正确(对于包含空格的路径,应使用双引号包裹)。

      示例:

      pyinstaller -Dw "C:\your\absolute\path\to\name.py"
      
    2. 以系统管理员身份运行CMD: 即使你已经右键选择“以管理员身份运行”,也可能由于UAC设置问题导致权限不足。请尝试通过在开始菜单搜索cmd.exe,然后右键点击结果选择“以管理员身份运行”。

    3. 临时关闭用户账户控制(UAC): 如果上述方法无效,可以尝试临时禁用UAC,重启电脑后尝试打包。但请注意此操作会降低系统的安全性,请在操作完成后重新开启UAC。

      如何禁用UAC:

      • 进入“控制面板” -> “用户账户” -> “更改用户账户控制设置”;
      • 将滑块移动到最低位置“从不通知”,然后点击“确定”并重启电脑。
    4. 直接在Python文件所在目录下运行PyInstaller: 打开资源管理器,找到你的python文件所在的目录,右键空白处选择“在此处打开powershell窗口”或者“在此处打开命令提示符”,这样可以直接在这个目录下执行PyInstaller命令,避免了CD到该目录的操作。

    5. 检查Python环境变量: 确认当前命令行环境下使用的Python和PyInstaller是安装在C:\Program Files (x86)C:\Program Files下的那个版本,如果它们不在系统路径中,需要手动添加至系统环境变量,确保能够正确访问。

    6. 使用虚拟环境: 如果您的项目是在虚拟环境中开发的,确保在激活该虚拟环境后执行PyInstaller命令。

    7. 排查系统文件锁定: 虽然您提到文件未被占用,但Permission Denied错误也可能是因为系统保护机制阻止对system32\config目录下的文件进行修改。这种情况下,除非有非常明确的需求,否则通常不会将源代码放在这个受保护的目录下。

    总之,请再次确认所有路径正确无误,同时确保具备足够的系统权限来执行PyInstaller命令。若问题依然存在,建议创建一个新的目录存放待打包的Python程序,并在该目录下尝试打包操作。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月12日
  • 创建了问题 3月11日