0

这已解决,尽我所能安装,但我不明白是什么导致了问题

每当我使用 PIP 安装任何软件包时,我都会得到Permission error如下

sudo pip install <packagename>

Downloading/unpacking requests                                                                                                                                                      
Exception:                                                                                                                                                                          
Traceback (most recent call last):                                                                                                                                                  
  File "/usr/lib/python2.7/site-packages/pip/basecommand.py", line 104, in main                                                                                                     
    status = self.run(options, args)                                                                                                                                                
  File "/usr/lib/python2.7/site-packages/pip/commands/install.py", line 245, in run                                                                                                 
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)                                                                                      
  File "/usr/lib/python2.7/site-packages/pip/req.py", line 971, in prepare_files                                                                                                    
    location = req_to_install.build_location(self.build_dir, not self.is_download)                                                                                                  
  File "/usr/lib/python2.7/site-packages/pip/req.py", line 153, in build_location                                                                                                   
    _make_build_dir(build_dir)                                                                                                                                                      
  File "/usr/lib/python2.7/site-packages/pip/req.py", line 1225, in _make_build_dir                                                                                                 
    os.makedirs(build_dir)                                                                                                                                                          
  File "/usr/lib64/python2.7/os.py", line 157, in makedirs                                                                                                                          
    mkdir(name, mode)                                                                                                                                                               
OSError: [Errno 13] Permission denied: '/home/alex/build'    

我已经开始在我的主目录中创建一个 tmp 目录,使其完全可写,然后按如下方式安装在那里

mkdir temp
chmod 777 temp
cd temp/
sudo pip install packagename

然后工作。知道为什么我必须经历这个吗?

4

1 回答 1

1

只有几个可能的问题(在我对问题的评论中列出)。

第一个问题被证明是这里的实际问题,并且可能也是未来搜索者/读者最有可能出现的问题,所以让我们只关注它。

如果/home/alex/build即使对于 root 也不可写,您将从sudo pip. 例如,如果/home从 CD 驱动器挂载,即使 root 也不能​​写入 CD-ROM。

人们拥有非根可写主目录的一个常见原因是网络共享。例如,如果你挂载一个 NFS 共享 sqsh_root,你的本地root不是root共享的,所以它只能写入全局可写目录。如果您挂载 SMB 共享以使用域权限,则 Windows 网络等效项将是正确的。

有许多参数可以pip让您自定义事物。我认为--build是您想要的,但请尝试pip install --help查看所有这些。(另外,请确保您是最新的。pip开发人员一直在添加和修复便利/自定义功能,同时等待 Python 打包的不久将来的决定。)

如果最坏的情况发生,您可以在--user没有 的情况下进行安装sudo,然后使用sudo将包和 egg-info 文件从您的用户站点包移动到系统。

于 2013-06-26T00:14:11.593 回答