pip install -r:OSError:权限被拒绝

我正在尝试设置Django 。

当我运行pip install -r requirements.txt ,出现以下exception:

 Installing collected packages: amqp, anyjson, arrow, beautifulsoup4, billiard, boto, braintree, celery, cffi, cryptography, Django, django-bower, django-braces, django-celery, django-crispy-forms, django-debug-toolbar, django-disqus, django-embed-video, django-filter, django-merchant, django-pagination, django-payments, django-storages, django-vote, django-wysiwyg-redactor, easy-thumbnails, enum34, gnureadline, idna, ipaddress, ipython, kombu, mock, names, ndg-httpsclient, Pillow, pyasn1, pycparser, pycrypto, PyJWT, pyOpenSSL, python-dateutil, pytz, requests, six, sqlparse, stripe, suds-jurko Cleaning up... Exception: Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main status = self.run(options, args) File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 283, in run requirement_set.install(install_options, global_options, root=options.root_path) File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1436, in install requirement.install(install_options, global_options, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/pip/req.py", line 672, in install self.move_wheel_files(self.source_dir, root=root) File "/usr/lib/python2.7/dist-packages/pip/req.py", line 902, in move_wheel_files pycompile=self.pycompile, File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 206, in move_wheel_files clobber(source, lib_dir, True) File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 193, in clobber os.makedirs(destsubdir) File "/usr/lib/python2.7/os.py", line 157, in makedirs mkdir(name, mode) OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/amqp-1.4.6.dist-info' 

什么是错的,我该如何解决这个问题?

你用sudo试过了吗?

 sudo pip install -r requirements.txt 

人们真的需要停止build议与pip install使用sudo 。 首先尝试pip install --user更好。 如果这失败,那么看看这里的顶部post。

你不应该使用sudo的原因如下:

当您使用sudo运行pip时,您将以root用户身份从Internet运行任意Python代码,这是相当大的安全风险。 如果有人在PyPI上安装了一个恶意项目,并且安装了该项目,则攻击者可以访问您的计算机。

也许你不是根。

通常,您可以使用sudo临时获取超级用户权限:

 sudo pip install -r requirements.txt 

在这里find更多关于sudo 信息

如果您不想进行系统级的更改 (而且第二个伯特的回答是说您可能不需要),请按照以下指南进行操作: 如何使用pip在我的$ HOME文件夹中安装软件包? 。

TL; DR:

 pip install --user runloop requirements.txt 

你也可以使用virtualenv ,这对于开发环境来说可能是一个更好的解决scheme,特别是在你正在处理多个项目并且要跟踪每个依赖关系时。

只是澄清什么在Linux(基于Ubuntu的)许可证上的许多痛苦之后为我工作的权限拒绝错误,并利用伯特的答案上面,我现在使用…

 $ pip install --user <package-name> 

或者如果在需求文件上运行pip …

 $ pip install --user -r requirements.txt 

并且这些工作可靠地用于每个点安装,包括创build虚拟环境。

然而, 在我的进一步体验中最干净的解决scheme是安装python-virtualenvvirtualenvwrapper ,并在系统级别sudo apt-get install

然后,在虚拟环境中,使用没有--user标志的pip install而没有sudo 。 更清洁,更安全,更容易整体。

用户对某些Python安装path没有写入权限。 您可以通过以下方式授予权限:

 sudo chown -R $USER /absolute/path/to/directory 

所以你应该给予权限,然后尝试再次安装它,如果你有新的path,你也应该给予权限:

 sudo chown -R $USER /usr/local/lib/python2.7/