pip install 出现 Missing dependencies for SOCKS support 问题的解决

发布于:2024-06-13 ⋅ 阅读:(132) ⋅ 点赞:(0)

问题描述

因为要分析chromadb 源码,clone了一份代码到本地后,需要安装依赖,发现有依赖需要python版本低于3.9,于是用anaconda新建了一个3.8的环境.

conda create -n chroma python=3.8
conda activate chroma

创建成功后,进入源码目录,开始安装依赖

pip install -r requirements_dev.txt

发现开始报错了

Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
ERROR: Could not install packages due to an OSError: Missing dependencies for SOCKS support.

WARNING: There was an error checking the latest version of pip.

问题解决

通过搜索得知,这个错误出现的原因是缺少PySocks库,于是试图安装这个库

(chroma) ➜  chroma git:(main) pip install PySocks
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
ERROR: Could not install packages due to an OSError: Missing dependencies for SOCKS support.

WARNING: There was an error checking the latest version of pip.

问题依旧。

换个思路,因为根据搜索到的信息,也可能是配置了代理造成的,用命令cancel掉所有的proxy

unset all_proxy
unset ALL_PROXY

但是这个很多人反馈有用的方案,在笔者这里还是不生效.

根据更多的搜索后,开始怀疑是否anaconda环境会有一些影响,于是尝试用conda安装PySocks.

conda install -c anaconda pysocks

这次安装成功了,随后再次进行依赖安装,终于成功。至此问题解决。

更新补充

在ubuntu系统上同样的操作时发现,conda create 命令也报错了,排查发现是系统代理的问题, 在.condarc文件中进行http代理的配置后解决. 同时,也发现,pip install出现socks错误也是系统代理导致,用环境变量配置http代理后,pip也能正常使用,可以看出,SOCKS support问题,是系统中的socks代理导致.

小结

在需要频繁切换python版本的时候,anaconda是一个非常好的选择,因为virtualenv还是需要本地有对应版本的python才能创建虚拟环境, 而anaconda创建环境的时候直接可以指定python版本,创建激活后,一样可以用pip进行依赖管理. 但conda对环境还是有一些影响,如果遇到依赖无法安装的问题,不妨从conda的角度去尝试,也许能有发现.


网站公告

今日签到

点亮在社区的每一天
去签到