关于许可的pip错误,可以修复吗?

时间:2016-12-27 20:00:26

标签: python pip

我正在尝试使用pip,每次向installupgrade运行命令时,都会看到此类错误(OSError)。

我不喜欢sudo只是为了安装软件包,这是必需的吗?

Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "/Library/Python/2.7/site-packages/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/Library/Python/2.7/site-packages/pip/wheel.py", line 316, in clobber
    ensure_dir(destdir)
  File "/Library/Python/2.7/site-packages/pip/utils/__init__.py", line 83, in ensure_dir
    os.makedirs(path)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/docutils'

2 个答案:

答案 0 :(得分:1)

您正在尝试修改所有用户之间共享的位置。你不能在没有sudo的情况下做到这一点,因为有充分的理由(否则,人们可以用删除所有用户数据的程序替换,例如python,或者将其复制到他们的主文件夹细读,等等。)。

如果您只想为自己而不是其他人进行更改,可以将pip --user参数传递给~/.local,以便只为您安装新软件包,而不是其他用户。

虚拟环境是另一种选择,但这在某种程度上是过度的(活动的虚拟环境将您完全隔离到系统site-packages目录,因此如果需要,您必须再次单独安装所有软件包。)< / p>

答案 1 :(得分:0)

Linux和Mac OS都带有自己的打包python解释器,不建议将它们用于开发目的。开始使用virtualenv,这是一个创建隔离的Python环境的工具,您可以在其中安装任何软件包,测试您自己的库的安装等等,而不会影响系统安装的python环境。查看他们的网站,获取有关如何在virtualenv中安装,创建和运行脚本的教程。