2013-09-24 50 views
8

Tôi đang cố gắng sử dụng Pip phía sau máy chủ proxy yêu cầu xác thực. Tôi đã cài đặt cntlm và điền vào các mật khẩu băm. Khi tôi chạy này:Không thể sử dụng CNTLM để kết nối với pip

cntlm -c cntlm.ini -I -M http://www.google.co.uk 

tôi nhập mật khẩu của tôi và sau đó có được điều này kết quả là:

Config profile 1/4... Auth not required (HTTP code: 200) 
    Config profile 2/4... Auth not required (HTTP code: 200) 
    Config profile 3/4... Auth not required (HTTP code: 200) 
    Config profile 4/4... Auth not required (HTTP code: 200) 

    Your proxy is open, you don't need another proxy. 

Tuy nhiên, pip không hoạt động, vẫn đem lại cho tôi một thời gian chờ. Biết rằng tôi không cần một proxy khác là tốt và dandy, nhưng pip vẫn hết thời gian. Cổng 3128 đang hoạt động vì tôi có thể telnet trên cổng đó và nó hiển thị dưới dạng nghe dưới netstat. Vậy tôi nên làm gì đây?

Cảm ơn bạn.

Trả lời

0

Tôi đã gặp sự cố tương tự.

Cntlm được sử dụng cho máy chủ proxy xác thực, các câu lệnh này có nghĩa là máy chủ của bạn không yêu cầu xác thực.

Lệnh pip có tùy chọn --proxy. Hãy thử sử dụng một cái gì đó như:

pip install --proxy=10.0.0.1:80 package_name 

Nếu điều này hoạt động, bạn biết rằng bạn không cần xác thực để truy cập web. Nếu vẫn không thành công, hãy thử:

pip install --proxy=user:[email protected]:80 package_name 

Thao tác này để khắc phục sự xác thực. Tôi đã viết một kịch bản cmd nhỏ để giải quyết vấn đề này trong các cửa sổ:

@echo off 
:: GetPwd.cmd - Get password with no echo. 
setlocal 
<nul: set /p passwd= 
for /f "delims=" %%i in ('python -c "from getpass import getpass; pwd = getpass();print  pwd;"') do set passwd=%%i 
echo. 

::Prompt for the package name 
set /p package=What package would you like to get: 

::Get the package with PIP 
pip install --proxy="admin:%passwd%@PROXY_ADDRESS:80" %package% 
endlocal