我如何修复 Pip 的权限错误?

2025-01-09 08:46:00
admin
原创
119
摘要:问题描述:当我尝试在家里的 Mac 上安装 Python 包时,我经常在尝试写入日志文件或目录时收到权限错误site-packages,如下所示:Command /usr/bin/python -c "import setuptools;__file__='/Users/markwalker/bui...

问题描述:

当我尝试在家里的 Mac 上安装 Python 包时,我经常在尝试写入日志文件或目录时收到权限错误site-packages,如下所示:

Command /usr/bin/python -c "import setuptools;__file__='/Users/markwalker/build/pycrypto/setup.py';exec(compile(open(__file__).read().replace('
', '
'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/tq/hy1fz_4j27v6rstzzw4vymnr0000gp/T/pip-k6f2FU-record/install-record.txt failed with error code 1 in /Users/markwalker/build/pycrypto
Storing complete log in /Users/markwalker/Library/Logs/pip.log
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 8, in <module>
    load_entry_point('pip==1.1', 'console_scripts', 'pip')()
  File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/__init__.py", line 116, in main
    return command.main(args[1:], options)
  File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 141, in main
    log_fp = open_logfile(log_fn, 'w')
  File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 168, in open_logfile
    log_fp = open(filename, mode)
IOError: [Errno 13] Permission denied: '/Users/markwalker/Library/Logs/pip.log'

我只想在我当前的用户帐户下安装该包。我该如何解决权限错误?我是否应该使用sudo


解决方案 1:

使用虚拟环境:

$ virtualenv myenv
.. some output ..
$ source myenv/bin/activate
(myenv) $ pip install what-i-want

sudo仅当您想要为全局、系统范围的 Python 安装安装内容时才使用或提升权限。

最好使用虚拟环境来隔离软件包。这样,您就可以随意操作而不会污染全局 python 安装。

另外,virtualenv 不需要提升权限。

解决方案 2:

使用sudoPip并不安全,因此不鼓励使用。

要在主目录中安装 Python 包,您不需要 root 权限。相反,请使用 Pip 的--user选项。

解决方案 3:

你原来的问题是 pip 无法将日志写入文件夹。

IOError: [Errno 13] Permission denied: '/Users/markwalker/Library/Logs/pip.log'

您需要 cd 进入一个文件夹,在该文件夹中调用的进程可以像/tmp这样写入cd /tmp,然后重新调用该命令可能会有效,但这不是您想要的。

实际上对于这种特殊情况(您不想用于sudo安装 python 包)并且不需要全局包安装,您可以使用--user如下标志:

pip install --user <packagename>

并且它会正常工作。

我假设您有一个用户 python python 安装,并且不想费心阅读有关virtualenv(不是很用户友好)或pipenv 的信息。

正如评论部分的一些人指出的那样,除非你不知道该做什么并且陷入困境,否则下一种方法不是一个好主意:

对于全局包的另一种方法,就像你的情况一样,你想要做类似的事情:

chown -R $USER /Library/Python/2.7/site-packages/

或者更普遍地

chown -R $USER <path to your global pip packages>

解决方案 4:

因为我遇到了同样的问题,所以我想强调一下,实际上Brian Cain的第一条评论是“IOError:[Errno 13]”问题的解决方案:

如果在临时目录中执行(cd /tmp),则运行时不会再发生 IOError sudo pip install foo

解决方案 5:

virtualenvwrapper成功安装后,我遇到了安装问题virtualenv

我这样做之后,我的终端抱怨道:

pip install virtualenvwrapper

因此,我尝试了这个方法但没有成功(不推荐):

sudo pip install virtualenvwrapper

然后,我使用以下命令成功安装了它:

pip install --user virtualenvwrapper

解决方案 6:

您的权限似乎有问题。chown -R markwalker ~在终端中输入内容,然后重试pip?如果您解决了问题,请告诉我。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1579  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1355  
  信创产品在政府采购中的占比分析随着信息技术的飞速发展以及国家对信息安全重视程度的不断提高,信创产业应运而生并迅速崛起。信创,即信息技术应用创新,旨在实现信息技术领域的自主可控,减少对国外技术的依赖,保障国家信息安全。政府采购作为推动信创产业发展的重要力量,其对信创产品的采购占比情况备受关注。这不仅关系到信创产业的发展前...
信创和国产化的区别   8  
  信创,即信息技术应用创新产业,旨在实现信息技术领域的自主可控,摆脱对国外技术的依赖。近年来,国货国用信创发展势头迅猛,在诸多领域取得了显著成果。这一发展趋势对科技创新产生了深远的推动作用,不仅提升了我国在信息技术领域的自主创新能力,还为经济社会的数字化转型提供了坚实支撑。信创推动核心技术突破信创产业的发展促使企业和科研...
信创工作   9  
  信创技术,即信息技术应用创新产业,旨在实现信息技术领域的自主可控与安全可靠。近年来,信创技术发展迅猛,对中小企业产生了深远的影响,带来了诸多不可忽视的价值。在数字化转型的浪潮中,中小企业面临着激烈的市场竞争和复杂多变的环境,信创技术的出现为它们提供了新的发展机遇和支撑。信创技术对中小企业的影响技术架构变革信创技术促使中...
信创国产化   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用