easy_install จะไม่เชื่อมต่อผ่านพร็อกซี


19

ฉันใช้ Ubuntu Server 10.04 64- บิตภายใต้ VirtualBox และดูเหมือนว่าทุกอย่างยกเว้น easy_install และ pip ​​สามารถเชื่อมต่อกับอินเทอร์เน็ต ฉันได้ตั้งค่าและส่งออกตัวแปรสภาพแวดล้อม http_proxy แล้วและยังตั้งค่าที่อยู่พร็อกซีในที่อื่น ๆ ที่ฉันรู้จัก แต่ easy_install จะส่งคืน "เครือข่ายไม่สามารถเข้าถึงได้" เสมอ:

:~$ echo $http_proxy
http://192.168.1.25:80/

:~$ grep "http_proxy" /etc/bash.bashrc
export http_proxy=http://192.168.1.25:80/

:~$ grep "http_proxy" /etc/wgetrc
http_proxy = http://192.168.1.25:80/

:~$ ping pypi.python.org
PING pypi.python.org (82.94.164.168) 56(84) bytes of data.
64 bytes from pypi.python.org (82.94.164.168): icmp_seq=1 ttl=53 time=114 ms
64 bytes from pypi.python.org (82.94.164.168): icmp_seq=2 ttl=53 time=113 ms
64 bytes from pypi.python.org (82.94.164.168): icmp_seq=3 ttl=53 time=113 ms
64 bytes from pypi.python.org (82.94.164.168): icmp_seq=4 ttl=53 time=113 ms
64 bytes from pypi.python.org (82.94.164.168): icmp_seq=5 ttl=53 time=114 ms
64 bytes from pypi.python.org (82.94.164.168): icmp_seq=6 ttl=53 time=113 ms
^C
--- pypi.python.org ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5006ms
rtt min/avg/max/mdev = 113.367/113.871/114.678/0.614 ms

:~$ sudo easy_install virtualenv
Searching for virtualenv
Reading http://pypi.python.org/simple/virtualenv/
Download error: [Errno 101] Network is unreachable -- Some packages may not be found!
Reading http://pypi.python.org/simple/virtualenv/
^Cinterrupted
:~$

ฉันสามารถเชื่อมต่อไปยังเว็บไซต์ได้จากภายใน Python:

>>> import urllib
>>> obj = urllib.urlopen('http://pypi.python.org/simple/virtualenv/')
>>> obj.readlines()[0]
'<html><head><title>Links for virtualenv</title></head><body><h1>Links for virtualenv</h1><a href="../../packages/source/v/virtualenv/virtualenv-1.5.1.tar.gz#md5=3daa1f449d5d2ee03099484cecb1c2b7">virtualenv-1.5.1.tar.gz</a><br/>\n'

ฉันมีผลเช่นเดียวกับแพคเกจอื่น ๆ virtualenvกว่า easy_install กำลังค้นหาข้อมูลการเชื่อมต่ออยู่ที่อื่นหรือมีบางสิ่งที่ชัดเจนว่าฉันขาดหายไปหรือไม่

คำตอบ:


31

sudoมันเป็นปัญหากับ หากคุณใช้sudoตัวแปร$http_proxyจะไม่รู้จักในบริบทนี้

sudo -iเปิดรูตเชลล์ คุณสามารถตั้งค่า$http_proxyตัวแปรได้อีกครั้งแล้ว easy_install ก็ใช้ได้ - คุณไม่ต้องใช้ sudo เพราะคุณเป็น superuser อยู่แล้ว

$ sudo -i
# export http_proxy=http://192.168.1.25:80
# easy_install virtualenv

หรือคุณสามารถมีสภาพแวดล้อมจริงของคุณในบริบท sudo และบันทึก "รับขั้นตอนรูต" ผ่าน:

$ sudo -E easy_install virtualenv

1
ขอขอบคุณ. ตัวเลขที่ฉันลืมเกี่ยวกับสิ่งต่าง ๆ เช่นขอบเขตเมื่อฉันไม่ได้เขียนโปรแกรม ฉันต้องตั้งค่าhttp_proxyใน / etc / environment บนการติดตั้งอื่นที่ฉันไม่มีปัญหา
robots.jpg

BRILLIANT ไม่มีไกด์นี้
Robert Grant

7

แทนที่จะเปิดรูทเชลล์ด้วยsudo -iคุณสามารถรันคำสั่งได้

$ sudo -E easy_install virtualenv

-Eสวิตช์เก็บรักษาสภาพแวดล้อมในปัจจุบันของคุณ


gotcha อีกอันก็คือบางส่วนที่เหมือน sudo (เช่น dzdo) ปฏิเสธที่จะรักษาตัวแปรเหล่านี้แม้ว่าคุณจะบอกพวกเขา
Sam Brightman

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.