pip install 不起作用,InvalidSchema:缺少 SOCKS 支持的依赖项

问题描述 投票:0回答:5

我被这个错误吓坏了,我已经被这个错误困扰了两天了。 2 天前激活了我的 virtualenv,然后尝试安装一些依赖项,但 pip install 不断抛出此错误。

pip install django
Traceback (most recent call last):
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/commands/install.py", line 335, in run
    wb.build(autobuilding=True)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/wheel.py", line 749, in build
    self.requirement_set.prepare_files(self.finder)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/req/req_set.py", line 554, in _prepare_file
    require_hashes
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/req/req_install.py", line 278, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/index.py", line 465, in find_requirement
    all_candidates = self.find_all_candidates(req.name)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 488, in get
    return self.request('GET', url, **kwargs)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 596, in send
    r = adapter.send(request, **kwargs)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/_vendor/cachecontrol/adapter.py", line 47, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/_vendor/requests/adapters.py", line 390, in send
    conn = self.get_connection(request.url, proxies)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/_vendor/requests/adapters.py", line 290, in get_connection
    proxy_manager = self.proxy_manager_for(proxy)
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/_vendor/requests/adapters.py", line 184, in proxy_manager_for
    **proxy_kwargs
  File "/home/blackpython/.local/lib/python2.7/site-packages/pip/_vendor/requests/adapters.py", line 43, in SOCKSProxyManager
    raise InvalidSchema("Missing dependencies for SOCKS support.")
InvalidSchema: Missing dependencies for SOCKS support.

我尝试安装 request[socks],但随后收到一条错误消息,指出它无法识别袜子版本

printenv | grep -i proxy
NO_PROXY=localhost,127.0.0.0/8,::1
http_proxy=http://proxy.iiit.ac.in:8080/
FTP_PROXY=http://proxy.iiit.ac.in:8080/
ftp_proxy=http://proxy.iiit.ac.in:8080/
all_proxy=socks://proxy.iiit.ac.in:8080/
ALL_PROXY=socks://proxy.iiit.ac.in:8080/
https_proxy=http://proxy.iiit.ac.in:8080/
HTTPS_PROXY=http://proxy.iiit.ac.in:8080/
no_proxy=localhost,127.0.0.0/8,::1
HTTP_PROXY=http://proxy.iiit.ac.in:8080/

这是我系统上的代理设置,有人可以帮助我吗? 谢谢 编辑:我厌倦了重新安装 ubuntu,但我仍然面临这个错误

python pip socks
5个回答
13
投票
  1. 根据您的情况取消设置袜子代理:
    
    unset all_proxy
    unset ALL_PROXY
    
  2. 安装缺少的依赖项:
    
    pip install pysocks
    
  3. 重置代理,
    source .bashrc
    pip install
    再次与socks代理一起使用。

4
投票

激活 venv 后我也无法安装 Django 和其他东西,但我最终做到了 [1]

type: sudo gedit .bashrc #or any text editor if gedit is not there 

      add this line at the last of your .bashrc file 
      export all_proxy="https://your_proxy:your_port/"

保存它应该起作用的更改。谢谢

参考。 [1] https://stackoverflow.com/a/39959360/4706745


0
投票

这对我有用

pip  install --user --proxy https://user:pass@proxyaddress:port django


0
投票

使用

卸载已安装的软件包
pip uninstall packagename

并设置代理

http_proxy=http://username:password@host:port/
https_proxy=https://username:password@host:port/ 

并尝试使用

安装
pip install packagename

0
投票

如果必须通过 SOCKS 代理访问互联网,则

pip install pysocks
的标准命令将不起作用,因为没有所需的 SOCKS 支持来安装提供它的包,从而有效地创建了一个鸡和鸡蛋问题。

要解决此问题,请导航到 https://pypi.org/project/PySocks/#files,下载与所使用的 Python 版本相关的轮子,然后使用

pip install -U /path/to/wheel
手动安装它,例如

$ pip install -U pip
ERROR: Could not install packages due to an OSError: Missing dependencies for SOCKS support.
$ pip install pysocks
ERROR: Could not install packages due to an OSError: Missing dependencies for SOCKS support.
$ wget https://files.pythonhosted.org/.../PySocks-1.7.1-py3-none-any.whl
...
2024-04-06 00:00:00 (84.5 MB/s) - ‘PySocks-1.7.1-py3-none-any.whl’ saved [16725/16725]
$ pip install -U PySocks-1.7.1-py3-none-any.whl 
...
Successfully installed PySocks-1.7.1
$ pip install -U pip
...
Successfully installed pip-24.0

在上面的示例中,我使用了

wget
,它可能在您的平台上不可用,因此您可能需要使用替代命令,或者只需使用网络浏览器(最常见于 Windows)来下载文件,然后使用在下载文件的路径上使用相同的
pip install -U
命令。

© www.soinside.com 2019 - 2024. All rights reserved.