操作环境
Python3.6 + Winodws7
问题现象
新安装python3.6版本后使用pip安装第三方模块失败,报错信息如下:
C:Userslinyfeng>pip install lxml Collecting lxml Downloading http://pypi.doubanio.com/packages/fb/41/b8d5c869d01fcb77c72d7d226a847a3946034ef19c244ac12920b71cd036/lxml-3.8.0-cp36-cp36m-win32.whl (2.9MB) 100% |████████████████████████████████| 2.9MB 4.6MB/s Installing collected packages: lxml Exception: Traceback (most recent call last): File "c:program files (x86)python36-32libsite-packagespipasecommand.py", line 215, in main status = self.run(options, args) File "c:program files (x86)python36-32libsite-packagespipcommandsinstall.py", line 342, in run prefix=options.prefix_path, File "c:program files (x86)python36-32libsite-packagespip eq eq_set.py", line 784, in install **kwargs File "c:program files (x86)python36-32libsite-packagespip eq eq_install.py", line 851, in install self.move_wheel_files(self.source_dir, root=root, prefix=prefix) File "c:program files (x86)python36-32libsite-packagespip eq eq_install.py", line 1064, in move_wheel_files isolated=self.isolated, File "c:program files (x86)python36-32libsite-packagespipwheel.py", line 345, in move_wheel_files clobber(source, lib_dir, True) File "c:program files (x86)python36-32libsite-packagespipwheel.py", line 316, in clobber ensure_dir(destdir) File "c:program files (x86)python36-32libsite-packagespiputils\__init__.py", line 83, in ensure_dir os.makedirs(path) File "c:program files (x86)python36-32libos.py", line 220, in makedirs mkdir(name, mode) PermissionError: [WinError 5] 拒绝访问。: 'c:\program files (x86)\python36-32\Lib\site-packages\lxml'
问题分析
提示PermissionError权限不足。查看当前cmd命令执行的用户以及该用户是否具有administrator权限。
(1)查看windows当前登录用户,使用命令whoami或者echo %username%
C:UsersTest>whoami
China est
或者
C:UsersTest>echo %username%
test
(2)查看test用户及所属管理组
C:UsersAdministrator>net user Test
用户名 Test
全名
注释 管理计算机(域)的内置帐户
用户的注释
国家/地区代码 000 (系统默认值)
帐户启用 Yes
帐户到期 从不
上次设置密码 2010/11/21 5:56:34
密码到期 从不
密码可更改 2010/11/21 5:56:34
需要密码 Yes
用户可以更改密码 Yes
允许的工作站 All
登录脚本
用户配置文件
主目录
上次登录 2018/1/10 21:17:20
可允许的登录小时数 All
本地组成员 *Users
全局组成员 *None
命令成功完成。
(3)查看c:\program files (x86)\python36-32\Lib\site-packages路径的site-packages文件夹目录权限
Users用户组的用户不具备写入权限,可以使用administrator权限用户执行或者将Test用户加入administrator用户组。
问题解决
使用管理员权限运行cmd命令,具体操作过程如下步骤所示:
(1) 利用where查找cmd运行绝对路径
C:Users est>where cmd
C:WindowsSystem32cmd.exe
(2) 到C:WindowsSystem32目录下,右键单击cmd.exe文件以管理员身份运行。如下
运行结果如下:
可以发现路径名变成了C:Windowssystem32>
(3) 重新执行pip install lxml,结果如下
C:Windowssystem32>pip install lxml Collecting lxml Downloading http://pypi.doubanio.com/packages/fb/41/b8d5c869d01fcb77c72d7d226a847a3946034ef19c244ac12920b71cd036/lxml-3.8.0-cp36-cp36m-win32.whl (2.9MB) 100% |████████████████████████████████| 2.9MB 6.8MB/s Installing collected packages: lxml Successfully installed lxml-3.8.0
(4) 安装成功。
知识引申
DOS其他相关操作命令
query user:显示有关终端服务器上的用户会话的信息
net localgroup administrator ${普通用户名} /add:将指定用户给予管理员权限
netplwiz:打开用户账户管理界面快捷键