簡體   English   中英

在 Mac OS X 上安裝 pip 時出錯

[英]errors installing pip on Mac OS X

我正在嘗試使用 python 2.6 版在 Mac OS X 系統上安裝 pip 並收到以下錯誤。

$ python /tmp/get-pip.py 
/tmp/tmpzyN3Si/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
Collecting pip
/tmp/tmpzyN3Si/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
Exception:
Traceback (most recent call last):
  File "/tmp/tmpLZAZtY/pip.zip/pip/basecommand.py", line 223, in main
    status = self.run(options, args)
  File "/tmp/tmpLZAZtY/pip.zip/pip/commands/install.py", line 280, in run
    requirement_set.prepare_files(finder)
  File "/tmp/tmpLZAZtY/pip.zip/pip/req/req_set.py", line 317, in prepare_files
    functools.partial(self._prepare_file, finder))
  File "/tmp/tmpLZAZtY/pip.zip/pip/req/req_set.py", line 304, in _walk_req_to_install
    more_reqs = handler(req_to_install)
  File "/tmp/tmpLZAZtY/pip.zip/pip/req/req_set.py", line 439, in _prepare_file
    req_to_install.populate_link(finder, self.upgrade)
  File "/tmp/tmpLZAZtY/pip.zip/pip/req/req_install.py", line 244, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "/tmp/tmpLZAZtY/pip.zip/pip/index.py", line 486, in find_requirement
    all_versions = self._find_all_versions(req.name)
  File "/tmp/tmpLZAZtY/pip.zip/pip/index.py", line 404, in _find_all_versions
    index_locations = self._get_index_urls_locations(project_name)
  File "/tmp/tmpLZAZtY/pip.zip/pip/index.py", line 378, in _get_index_urls_locations
    page = self._get_page(main_index_url)
  File "/tmp/tmpLZAZtY/pip.zip/pip/index.py", line 810, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/tmp/tmpLZAZtY/pip.zip/pip/index.py", line 920, in get_page
    "Cache-Control": "max-age=600",
  File "/tmp/tmpLZAZtY/pip.zip/pip/_vendor/requests/sessions.py", line 477, in get
    return self.request('GET', url, **kwargs)
  File "/tmp/tmpLZAZtY/pip.zip/pip/download.py", line 373, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/tmp/tmpLZAZtY/pip.zip/pip/_vendor/requests/sessions.py", line 465, in request
    resp = self.send(prep, **send_kwargs)
  File "/tmp/tmpLZAZtY/pip.zip/pip/_vendor/requests/sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "/tmp/tmpLZAZtY/pip.zip/pip/_vendor/cachecontrol/adapter.py", line 36, in send
    cached_response = self.controller.cached_request(request)
  File "/tmp/tmpLZAZtY/pip.zip/pip/_vendor/cachecontrol/controller.py", line 102, in cached_request
    resp = self.serializer.loads(request, self.cache.get(cache_url))
  File "/tmp/tmpLZAZtY/pip.zip/pip/_vendor/cachecontrol/serialize.py", line 108, in loads
    return getattr(self, "_loads_v{0}".format(ver))(request, data)
  File "/tmp/tmpLZAZtY/pip.zip/pip/_vendor/cachecontrol/serialize.py", line 184, in _loads_v2
    return self.prepare_response(request, cached)
  File "/tmp/tmpLZAZtY/pip.zip/pip/_vendor/cachecontrol/serialize.py", line 145, in prepare_response
    **cached["response"]
TypeError: __init__() keywords must be strings

然后我用python2.6試了一下:

python2.6 /tmp/get-pip.py
/tmp/tmpI57ALq/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
You are using pip version 7.0.3, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting pip
/tmp/tmpI57ALq/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB)
    100% |################################| 1.1MB 303kB/s 
Collecting setuptools
  Downloading setuptools-18.3.1-py2.py3-none-any.whl (462kB)
    100% |################################| 462kB 723kB/s 
Collecting wheel
  Downloading wheel-0.24.0-py2.py3-none-any.whl (63kB)
    100% |################################| 65kB 3.6MB/s 
Collecting argparse (from wheel)
  Downloading argparse-1.3.0-py2.py3-none-any.whl
Installing collected packages: pip, setuptools, argparse, wheel
Successfully installed argparse-1.3.0 pip-7.1.2 setuptools-18.3.1 wheel-0.24.0

但是當我嘗試使用它時找不到 pip 命令。

$  which pip
pip not found

當我再次運行 python2.6 時,我得到以下信息:

python2.6 /tmp/get-pip.py
You are using pip version 7.0.3, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
/tmp/tmpCu8MaZ/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
Requirement already up-to-date: pip in /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages

我讀過pip install requests[security]可以解決這個問題,但首先我需要安裝 pip 才能安裝這些包。

編輯:這似乎是與 Python 2.6.1 相關的錯誤。 我已經使用 Homebrew 安裝了更新版本的 Python (2.7.10) 並使用 easy_install 安裝了 pip。 然后我添加了路徑 /usr/local/bin 以獲得優先級,現在 pip 安裝包。 不過,我不確定將非本地 python 用於 pip 是否可以。

你試過easy_install嗎?

這是一個簡單的解決方案。

首先,確保你已經安裝了Python 如何? 打開終端並運行以下命令。

python --version

如果此命令返回一個版本號,則表示已經安裝了 python。 這也意味着考慮到您使用的是OS X您已經可以訪問easy_install

現在,您所要做的就是運行以下命令。

sudo easy_install pip

之后, pip將被安裝,您將能夠使用它來安裝其他軟件包。

干杯! 讓我知道這種安裝 pip 的方式是否適合您。 💯

重新安裝 Python 然后它就可以工作了。 當您在系統上安裝 Python 時,會預先安裝 Pip。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM