2014-09-29 15 views
6

Đang cố cài đặt pip trên cài đặt python mới. Tôi bị mắc kẹt với lỗi proxy. Có vẻ như một lỗi trong số get-pip hoặc urllib3 ??pip, xác thực proxy và "Sơ đồ proxy không được hỗ trợ"

Câu hỏi là tôi phải trải qua cơn đau khi thiết lập CNTLM as described here hoặc có lối tắt không?

get-pip.py documentation nói sử dụng tùy chọn --proxy="[user:[email protected]]proxy.server:port" tùy chọn chỉ định proxy và xác thực có liên quan. Nhưng có vẻ như pip đi qua toàn bộ điều như nó là urllib3 mà diễn giải "myusr" như là lược đồ url, vì ':' tôi đoán (?).

C:\ProgFiles\Python27>get-pip.py --proxy myusr:[email protected]:80 
Downloading/unpacking pip 
Cleaning up... 
Exception: 
Traceback (most recent call last): 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\basecommand.py", line 122, in main 
    status = self.run(options, args) 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\commands\install.py", line 278, in run 
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\req.py", line 1177, in prepare_files 
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade) 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\index.py", line 194, in find_requirement 
    page = self._get_page(main_index_url, req) 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\index.py", line 568, in _get_page 
    session=self.session, 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\index.py", line 670, in get_page 
    resp = session.get(url, headers={"Accept": "text/html"}) 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\sessions.py", line 468, in get 
    return self.request('GET', url, **kwargs) 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\download.py", line 237, in request 
    return super(PipSession, self).request(method, url, *args, **kwargs) 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\sessions.py", line 456, in request 
    resp = self.send(prep, **send_kwargs) 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\sessions.py", line 559, in send 
    r = adapter.send(request, **kwargs) 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\adapters.py", line 305, in send 
    conn = self.get_connection(request.url, proxies) 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\adapters.py", line 215, in get_connection 
    block=self._pool_block) 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\packages\urllib3\poolmanager.py", line 258, in proxy_fro 
m_url 
    return ProxyManager(proxy_url=url, **kw) 
    File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\packages\urllib3\poolmanager.py", line 214, in __init__ 
    'Not supported proxy scheme %s' % self.proxy.scheme 
AssertionError: Not supported proxy scheme myusr 

Storing debug log for failure in C:\Users\myusr\pip\pip.log 

C:\ProgFiles\Python27> 

Khi tôi chạy lệnh mà không có usrname và mật khẩu hoạt động tốt, nhưng proxy từ chối yêu cầu cho biết cần xác thực ("xác thực 407").

C:\ProgFiles\Python27>get-pip.py --proxy 111.222.333.444:80 
Downloading/unpacking pip 
    Cannot fetch index base URL https://pypi.python.org/simple/ 
    Could not find any downloads that satisfy the requirement pip 
Cleaning up... 
No distributions at all found for pip 
Storing debug log for failure in C:\Users\sg0219898\pip\pip.log 

C:\ProgFiles\Python27>cat C:\Users\sg0219898\pip\pip.log 
------------------------------------------------------------ 
C:\ProgFiles\Python27\get-pip.py run on 09/29/14 16:23:26 
Downloading/unpacking pip 
    Getting page https://pypi.python.org/simple/pip/ 
    Could not fetch URL https://pypi.python.org/simple/pip/: connection error: ('Cannot connect to proxy.', error('Tunnel connection failed: 407 authenticationrequired',)) 
    Will skip URL https://pypi.python.org/simple/pip/ when looking for download links for pip 
    Getting page https://pypi.python.org/simple/ 
    Could not fetch URL https://pypi.python.org/simple/: connection error: ('Cannot connect to proxy.', error('Tunnel connection failed: 407 authenticationrequired',)) 
    Will skip URL https://pypi.python.org/simple/ when looking for download links for pip 
    Cannot fetch index base URL https://pypi.python.org/simple/ 
    URLs to search for versions for pip: 
    * https://pypi.python.org/simple/pip/ 
    Getting page https://pypi.python.org/simple/pip/ 
    Could not fetch URL https://pypi.python.org/simple/pip/: connection error: ('Cannot connect to proxy.', error('Tunnel connection failed: 407 authenticationrequired',)) 
    Will skip URL https://pypi.python.org/simple/pip/ when looking for download links for pip 
    Could not find any downloads that satisfy the requirement pip 
Cleaning up... 
    Removing temporary dir c:\users\sg0219~1\appdata\local\temp\pip_build_SG0219898... 
No distributions at all found for pip 
Exception information: 
Traceback (most recent call last): 
    File "c:\users\sg0219~1\appdata\local\temp\tmp36ynxd\pip.zip\pip\basecommand.py", line 122, in main 
    status = self.run(options, args) 
    File "c:\users\sg0219~1\appdata\local\temp\tmp36ynxd\pip.zip\pip\commands\install.py", line 278, in run 
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) 
    File "c:\users\sg0219~1\appdata\local\temp\tmp36ynxd\pip.zip\pip\req.py", line 1177, in prepare_files 
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade) 
    File "c:\users\sg0219~1\appdata\local\temp\tmp36ynxd\pip.zip\pip\index.py", line 277, in find_requirement 
    raise DistributionNotFound('No distributions at all found for %s' % req) 
DistributionNotFound: No distributions at all found for pip 

C:\ProgFiles\Python27> 

Tôi đã xem qua số urllib3\poolmanager.py và dường như không liên quan gì đến tên người dùng/mật khẩu.

+1

Có vẻ như nó có thể liên quan đến https://github.com/kennethreitz/requests/issues/2247 – shazow

+0

Nó không phải. Xin vui lòng xem câu trả lời dưới đây –

Trả lời

10

này được phàn nàn về chương trình cho URL (mà urlparse được hiểu là myusr), để làm việc xung quanh mà bạn thay vì phải được thực hiện:

get-pip.py --proxy http://myusr:[email protected]:80 
1

này vì kịch bản đòi hỏi các biến môi trường http_proxy hoặc https_proxy chứa lược đồ trong URL. Thiết lập các biến môi trường

export http_proxy="http://<hostname>:<port>" 
export https_proxy="https://<hostname>:<port>" 

trước khi chạy "trăn get-pip.py"

+0

Điều này đã không làm việc cho tôi, nhưng nó đã làm việc với các tùy chọn '--proxy'. – dokaspar

+0

Điều này làm việc cho tôi. Tôi đã nhận được lỗi tương tự như OP, và tôi đã sử dụng các biến môi trường proxy không chứa 'http' /' https'. Sử dụng tùy chọn '--proxy' không hoạt động đối với tôi, nhưng điều này có thể là do các biến môi trường của tôi vẫn tồn tại. – JGC

0

Đối với vấn đề bạn đã đề cập, nó phụ thuộc vào cách thức xác thực máy chủ proxy đã được thiết lập. Ví dụ: mạng nội bộ của tôi sử dụng Windows AD và có thể máy chủ proxy đang sử dụng auth Windows tích hợp. Vì vậy, khi tôi làm pip install --proxy http://<server-ip>:<port> <module-name>, nó hoạt động tốt. Lưu ý rằng tôi không phải nhập tên người dùng & mật khẩu, có thể do xác thực được tích hợp.

Vì vậy, bạn sẽ cần phải tìm ra xác thực được sử dụng bởi proxy của bạn server.You có thể sử dụng công cụ Fiddler (hoặc bất kỳ máy phân tích mạng khác) để kiểm tra các tiêu đề WWW-Authenticate trong phản ứng 407, để kiểm tra những gì auth mechs máy chủ hỗ trợ.

+0

Như trong OP, máy chủ của tôi mong đợi người dùng/mật khẩu. Dù sao vấn đề là những gì câu trả lời được chấp nhận chỉ ra, lưu ý để làm với auth như vậy. – Kashyap

Các vấn đề liên quan