pip / python:正常的站点包不可写


11

我有一台新的Macbook-一个用户安装了它,然后我安装了一个新用户(我的),被授予管理员权限并删除了旧的。我在OS Catalina上。

自安装以来,我一直遇到一些权限问题。VSCode找不到Jupyter Notebook,请在pip安装软件包~/Library/Python/3.7/site-packages

当我这样做which python3,我得到usr/bin/python3。当我pip3 install <package>得到时:Defaulting to user installation because normal site-packages is not writeable尽管它无法访问,但它说它已经安装了import <package>

显然,这是一个权限问题,pip无法安装到“基本” python,他们python也找不到我已安装到的内容~/Library/Python/3.7/site-packages

我尝试过重新安装操作系统,但是由于我没有进行全新安装,因此它没有任何更改。我想念什么?我到底该如何修复权限?我在哪里安装软件包(venv当然,但是有些软件包我想全局安装(如jupyter)。

谢谢


我也有这个问题。我想知道这是否与Python 2.7支持的结束有关
克里斯·杜特罗

我遇到了同样的问题
Mahyar Maleki

1
您确定使用的是正确的pip吗?如果您使用更安全的方法python -m pip install ....怎么办?
Tom de Geus

@TomdeGeus:嗯,python3 -m pip install ...在这种情况下,但是是的,当涉及多个版本的Python时,pip通过“ exec模块”方法进行调用要安全得多,因此您知道您正在使用预期的Python可执行文件。
ShadowRanger

为了解决这个问题,我最终卸载了python3(以前与brew一起安装),并使用pyenv安装python3。现在一切正常。遵循了本指南:opensource.com/article/19/5/python-3-default-mac(跳到最后一部分)
Arseny Levin

Answers:


2

最好不要直接使用系统提供的Python。就像您所经历的那样,请不要理会该操作系统,因为操作系统可能会以不希望的方式对其进行更改。

最佳实践是使用virtualenv(对于Python 2)或venv(对于Python 3)配置自己的Python版本并在每个项目的基础上进行管理。这消除了对系统提供的Python版本的所有依赖,并且还将每个项目与计算机上的其他项目隔离开来。

如果需要,每个项目可以具有不同的Python点版本,并具有自己的site_packages目录,因此pip安装的库也可以按项目具有不同的版本。这种方法是一个主要的问题回避者。


0

在Debian 9.12的全新安装上也有同样的问题。重新启动服务器解决了该问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.