在Windows 7上安装Python和distribute会提供;写作失败。。。“拒绝许可”;

在Windows 7上安装Python和distribute会提供;写作失败。。。“拒绝许可”;,python,windows-7,permissions,installation,distribute,Python,Windows 7,Permissions,Installation,Distribute,我在Windows7上(我完全承认我不了解的权限模型。我正在其他选项卡上阅读有关它的内容。)我的用户是管理员。当我尝试运行“python distribution_setup.py”时,会出现“写入失败…权限被拒绝”错误,然后出现“错误:无法在安装目录中创建或删除文件” 我刚从Python.org安装了python3.2.2msi安装程序 即使在64位Windows上,我也在安装32位Python,因为我会有一些需要它的依赖项(pyglet,一个库) 我下载distribute_setup.py

我在Windows7上(我完全承认我不了解的权限模型。我正在其他选项卡上阅读有关它的内容。)我的用户是管理员。当我尝试运行“python distribution_setup.py”时,会出现“写入失败…权限被拒绝”错误,然后出现“错误:无法在安装目录中创建或删除文件”

我刚从Python.org安装了python3.2.2msi安装程序

即使在64位Windows上,我也在安装32位Python,因为我会有一些需要它的依赖项(pyglet,一个库)

我下载distribute_setup.py并从命令行运行“python distribute_setup.py”

在大量无用的文本中,有一些隐藏的错误消息:

root: Generating grammar tables from E:\Program Files (x86)\Python3.2.2\Lib\lib2to3\PatternGrammar.txt
root: Writing grammar tables to E:\Program Files (x86)\Python3.2.2\Lib\lib2to3\PatternGrammar3.2.2.final.0.pickle
root: Writing failed:[Errno 13] Permission denied: 'E:\\Program Files (x86)\\Python3.2.2\\Lib\\lib2to3\\PatternGrammar3.2.2.final.0.pickle'
这三行重复大约二十次,然后:

Scanning installed packages
No setuptools distribution found
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 13] Permission denied: 'E:\\Program Files (x86)\\Python3.2.2\\Lib\\site-packages\\test-easy-install-5924.write-test'
目录“E:\ProgramFiles(x86)\Python3.2.2\Lib”允许管理员进行“完全控制”。我的用户是管理员(选中的权限复选框都是灰色的-我无法关闭“完全控制”或任何其他权限,即使我想关闭)

我推测性地尝试向“用户”组和“管理员”组添加“完全控制”。重新运行时,我不再收到相同的错误,但它在同一点退出,并带有:

Scanning installed packages
No setuptools distribution found
build\src\setuptools\command\easy_install.py:289: UserWarning: Unbuilt egg for distribute [unknown version] (c:\users\jhartley\appdata\local\temp\tmpr0dzkz\distribute-0.6.24\build\src)
  self.local_index = Environment(self.shadow_path+sys.path)
warning: no files found matching 'Makefile' under directory 'docs'
warning: no files found matching 'indexsidebar.html' under directory 'docs'
error: E:\Program Files (x86)\Python3.2.2\Scripts: Access is denied
没有“E:\Program Files(x86)\Python3.2.2\Scripts”目录。我创造了一个。它归“管理员”所有,并为管理员设置了“完全控制”。我注意到所有其他Python文件和目录都归“SYSTEM”所有。再次跑步会带来:

Scanning installed packages
No setuptools distribution found
build\src\setuptools\command\easy_install.py:289: UserWarning: Unbuilt egg for distribute [unknown version] (c:\users\jhartley\appdata\local\temp\tmp1kmbk6\distribute-0.6.24\build\src)
  self.local_index = Environment(self.shadow_path+sys.path)
warning: no files found matching 'Makefile' under directory 'docs'
warning: no files found matching 'indexsidebar.html' under directory 'docs'
error: E:\Program Files (x86)\Python3.2.2\Scripts\easy_install-script.py: Permission denied
尽管“Scripts”目录为管理员授予了“完全控制权”,但我还是尝试为用户组添加“完全控制权”。重新运行会产生一些警告:

Scanning installed packages
No setuptools distribution found
build\src\setuptools\command\easy_install.py:289: UserWarning: Unbuilt egg for distribute [unknown version] (c:\users\jhartley\appdata\local\temp\tmp31bznf\distribute-0.6.24\build\src)
  self.local_index = Environment(self.shadow_path+sys.path)
warning: no files found matching 'Makefile' under directory 'docs'
warning: no files found matching 'indexsidebar.html' under directory 'docs'
但似乎成功地完成了

但是,然后运行“easy_install virtualenv”会生成一个用户帐户控制对话框“是否允许来自未知发布者的以下程序对此计算机进行更改?”然后创建一个新的CMD窗口,该窗口闪烁且消失得太快,看不见,并且似乎不起作用:virtualenv尚未安装

我想阻止UAC对话框每次出现。这很烦人:“easy_install”是一个我信任的程序,我不需要每次运行它时都进行确认。我能找到的阻止UAC对话框出现的所有解决方案都涉及到创建一个指向可执行文件的神奇的双击快捷方式。我还没有找到任何命令行应用程序

我还想阻止easy_install在新的cmd窗口中启动。这使得无法看到输出。此问题似乎与UAC对话框无关,因为全局关闭UAC意味着easy_install将在没有该对话框的情况下运行,但它仍在新窗口中运行

这是怎么回事?我做错了什么?

明确地授予我自己的用户对整个系统Python安装目录及其子目录的“完全控制权”,使安装工作变得简单

然而,这并不完全令人满意:

  • easy_install仍会生成UAC对话框。我想关闭它,因为easy_install是一个我信任的程序
  • easy_install仍会在一个新的cmd窗口中启动,然后该窗口消失,因此如果需要,我无法检查输出(例如,当它之前失败时)

在打开命令提示符时,您似乎必须使用“以管理员身份运行”选项,因为正如您妻子所说,“Windows是f****d”。您似乎也已经发现,关闭UAC是避免在执行此操作时出现UAC对话框的一种方法。

是否使用“以管理员身份运行”打开命令提示符?我不是。这似乎解决了它!好极了真令人尴尬。但我一点也不理解——我的用户已经是管理员了。那么,“以管理员身份运行”操作实际上在做什么呢?这是否适用于我使用“未知发布者”安装的每个可执行文件?这是否意味着您必须以管理员身份运行每个控制台会话?不管怎样,如果你添加一个答案,我会很乐意选择它,但如果你能解释这些事情,我会非常高兴。我的妻子在Windows上开发经验丰富,她告诉我,事情之所以如此,是因为“Windows是f****d”。我会敦促她将此提交给stackoverflow,因为这似乎是一个可接受的答案。选中我的控制台上的“以管理员身份运行”复选框(可执行或快捷方式)意味着我现在每次打开控制台时都会收到一个UAC对话框,这是次优的。必须使用“以管理员身份运行”右键单击菜单选项,这意味着运行控制台的键盘快捷键不再有效。已关闭UAC。如果有人能详细说明为什么我需要这样做,即使我的用户已经是管理员,这将非常有用。我创建了一个单独的问题,以了解“以管理员身份运行”与作为管理员的区别。总之,即使您是管理员,您的进程也会被剥夺管理员权限,除非您选择“以管理员身份运行”(如果您是管理员,则无需输入密码即可运行)。更多详细信息如下: