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

2025-01-09 08:46:00
admin
原创
118
摘要:问题描述:当我尝试在家里的 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大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用