pip安装提示error: externally-managed-environment
就是系统不允许直接用pip
命令在系统级的Python环境中安装软件包,以防止无意中破坏系统所需的Python依赖,这是一种保护机制
可以通过创建一个独立的、隔离的Python虚拟环境(venv)来解决
python3 -m venv <venv_name/path_to_venv_name> # 创建虚拟环境
source path/to/venv/bin/activate.fish # 激活进入虚拟环境,因为我是用fish shell所以用的是activate.fish,如果是bash或zsh需要修改
pip3 install <package_name> # 进入虚拟环境后可以使用pip3安装需要的包
deactivate # 退出虚拟环境
注意,在虚拟环境中安装的包只有进入虚拟环境才能用
pip需要安装pysocks包后才能使用socks代理
受限于国内的网络问题,无法直接使用pip安装软件包,因此在shell中配置了全局socks代理
但是pip默认无法直接使用shell配置的socks代理,需要先安装pysocks包,但是安装pysocks包也需要用pip安装,这就很烦
可以先配置一下pip用国内源,需要先创建pip配置文件~/.config/pip/pip.conf,写入以下内容
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
然后先注释掉shell配置中关于代理的内容
重新打开shell后进入venv环境,执行pip3 install pysocks安装socks模块
然后回到shell配置中取消注释关于socks代理的内容
删除pip配置文件