首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Ubuntu上使用pip时IPv6网址错误无效

在Ubuntu上使用pip时IPv6网址错误无效
EN

Stack Overflow用户
提问于 2022-02-01 10:25:42
回答 1查看 1.6K关注 0票数 1

当我试图从我的anaconda环境中安装一个包时,我会得到一个"ValueError: IPv6 URL无效“错误消息(下面是完全错误)。具体来说,它看起来像是urlsplit中的错误。

我在代理后面,因此我尝试在. .pip/pip.conf中明确设置代理细节,并将其明确地附加到命令行中。这两种情况下的误差略有不同。请注意,在我的密码中,我没有这些特殊符号@、$、-、#。不过,我确实有一些特殊的字符,因为它们是系统要求的。我试着把它们写进引文双引号背靠背..。没什么。

代码语言:javascript
运行
复制
$ cat .pip/pip.conf
[global]
timeout = 60
index-url = https://pypi.python.org/simple/
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org
proxy = http://username:password@ipadress:port

[install]
index-url = https://pypi.python.org/simple/

原始的commnadnd +错误消息如下:

代码语言:javascript
运行
复制
$ pip3 install Cython
Collecting Cython
Exception:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 209, in main
    status = self.run(options, args)
  File "/usr/lib/python3/dist-packages/pip/commands/install.py", line 328, in run
    wb.build(autobuilding=True)
  File "/usr/lib/python3/dist-packages/pip/wheel.py", line 748, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/lib/python3/dist-packages/pip/req/req_set.py", line 360, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python3/dist-packages/pip/req/req_set.py", line 512, in _prepare_file
    finder, self.upgrade, require_hashes)
  File "/usr/lib/python3/dist-packages/pip/req/req_install.py", line 273, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "/usr/lib/python3/dist-packages/pip/index.py", line 442, in find_requirement
    all_candidates = self.find_all_candidates(req.name)
  File "/usr/lib/python3/dist-packages/pip/index.py", line 400, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/usr/lib/python3/dist-packages/pip/index.py", line 545, in _get_pages
    page = self._get_page(location)
  File "/usr/lib/python3/dist-packages/pip/index.py", line 648, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/usr/lib/python3/dist-packages/pip/index.py", line 757, in get_page
    "Cache-Control": "max-age=600",
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 492, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python3/dist-packages/pip/download.py", line 378, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 480, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 588, in send
    r = adapter.send(request, **kwargs)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/adapters.py", line 343, in send
    conn = self.get_connection(request.url, proxies)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/adapters.py", line 253, in get_connection
    proxy = prepend_scheme_if_needed(proxy, 'http')
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/utils.py", line 666, in prepend_scheme_if_needed
    scheme, netloc, path, params, query, fragment = urlparse(url, new_scheme)
  File "/usr/lib/python3.5/urllib/parse.py", line 295, in urlparse
    splitresult = urlsplit(url, scheme, allow_fragments)
  File "/usr/lib/python3.5/urllib/parse.py", line 363, in urlsplit
    raise ValueError("Invalid IPv6 URL")
ValueError: Invalid IPv6 URL

通过将代理附加到命令行,我得到了一条稍微短一些的消息:

代码语言:javascript
运行
复制
$ pip install Cython --proxy = https://username:password@ipadress:port
ERROR: Exception:
Traceback (most recent call last):
  File "/home/mdi0316/anaconda3/lib/python3.6/site-packages/pip/_internal/cli/base_command.py", line 164, in exc_logging_wrapper
    status = run_func(*args)
  File "/home/mdi0316/anaconda3/lib/python3.6/site-packages/pip/_internal/cli/req_command.py", line 205, in wrapper
    return func(self, options, args)
  File "/home/mdi0316/anaconda3/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 305, in run
    reqs = self.get_requirements(args, options, finder, session)
  File "/home/mdi0316/anaconda3/lib/python3.6/site-packages/pip/_internal/cli/req_command.py", line 385, in get_requirements
    user_supplied=True,
  File "/home/mdi0316/anaconda3/lib/python3.6/site-packages/pip/_internal/req/constructors.py", line 366, in install_req_from_line
    parts = parse_req_from_line(name, line_source)
  File "/home/mdi0316/anaconda3/lib/python3.6/site-packages/pip/_internal/req/constructors.py", line 281, in parse_req_from_line
    link = Link(name)
  File "/home/mdi0316/anaconda3/lib/python3.6/site-packages/pip/_internal/models/link.py", line 73, in __init__
    self._parsed_url = urllib.parse.urlsplit(url)
  File "/home/mdi0316/anaconda3/lib/python3.6/urllib/parse.py", line 460, in urlsplit
    raise ValueError("Invalid IPv6 URL")
ValueError: Invalid IPv6 URL

我还能做什么呢?

谢谢。

PS,为什么我要使用pip3而不是pip?由于某些原因,我的默认pip是anaconda,因此我也可以安装anaconda 3/pip,但是/usr/bin/python不会识别它。

代码语言:javascript
运行
复制
$which python
> /usr/bin/python
$ python --version
> Python 3.5.2

$ which pip
> /usr/bin/pip
$ pip --version
> pip 21.3.1 from /home/userid/anaconda3/lib/python3.6/site-packages/pip (python 3.6)

$ which python3
> /usr/bin/python3
$ python3 --version
> Python 3.5.2

$ which pip3
> /usr/bin/pip3
$ pip3 --version
> pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

然后我尝试了sudo apt-get remove python-pipsudo apt install python-pip,但是我得到了相同的anaconda3版本:

代码语言:javascript
运行
复制
$ which pip
> /usr/bin/pip
$ pip --version
> pip 21.3.1 from /home/userid/anaconda3/lib/python3.6/site-packages/pip (python 3.6)
EN

回答 1

Stack Overflow用户

发布于 2022-02-07 08:49:02

我删除了密码中的所有符号,只保留字母数字,现在正在工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70938942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档