我正在尝试使用pip
,每次向install
或upgrade
运行命令时,都会看到此类错误(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'
答案 0 :(得分:1)
您正在尝试修改所有用户之间共享的位置。你不能在没有sudo
的情况下做到这一点,因为有充分的理由(否则,人们可以用删除所有用户数据的程序替换,例如python
,或者将其复制到他们的主文件夹细读,等等。)。
如果您只想为自己而不是其他人进行更改,可以将pip
--user
参数传递给~/.local
,以便只为您安装新软件包,而不是其他用户。
虚拟环境是另一种选择,但这在某种程度上是过度的(活动的虚拟环境将您完全隔离到系统site-packages
目录,因此如果需要,您必须再次单独安装所有软件包。)< / p>
答案 1 :(得分:0)
Linux和Mac OS都带有自己的打包python解释器,不建议将它们用于开发目的。开始使用virtualenv,这是一个创建隔离的Python环境的工具,您可以在其中安装任何软件包,测试您自己的库的安装等等,而不会影响系统安装的python环境。查看他们的网站,获取有关如何在virtualenv中安装,创建和运行脚本的教程。