2017-08-28 29 views
0

我真的很困惑,我敢肯定我錯過了一些簡單的東西,但我不明白爲什麼設置代理環境變量適用於某些功能,但不適用於其他功能。圖書館是否對這些變量有不同的迴應?爲什麼wget可以使用代理環境變量,但ftplib不能?

例如,我通過ftp繞過文件。當我用wget下載時,我設置了代理環境變量和它的下載,但是接着說我想用ftplib將它恢復,它會得到[Errno 11001],我是否需要通過ftplib專門傳遞這些代理詳細信息?

說我把它這樣,我可以下載該文件就好了:

# setup proxy 
os.environ["ftp_proxy"] = 
"http://****:****@proxyfarm.****.com:8080" 
os.environ["http_proxy"] = 
"http://****:****@proxyfarm.****.com:8080" 
os.environ["https_proxy"] = 
"http://****:****@proxyfarm.****.com:8080" 

src = "ftp://****:****@ftp.blackrock.com/****/****.csv" 
out = "C:\\outFolder\\outFileName.txt" # out is optional 

# create output folder if it doesn't exists 
outFolder, _ = os.path.split(out) 
try: 
    os.makedirs(outFolder) 
except OSError as exc: # Python >2.5 
    if exc.errno == errno.EEXIST and os.path.isdir(outFolder): 
     pass 
    else: raise 

# download 
filename = wget.download(src, out) 

現在正下方,我切換到FTPLIB,我得到的[錯誤11001],做我需要重置ftplib的代理參數具體是什麼?

session = ftplib.FTP('ftp.blackrock.com','****','****') 
file = open(filename,'rb')     # file to send 
session.storbinary('STOR '+ remotePath + filename, file)  # send the file 
file.close()         # close file and FTP 
session.quit() 

回答

0

ftp_proxy(和其他)是proprietary feature of the wget

你不能指望它可以與任何其他FTP庫/軟件一起使用。

+0

啊,知道了,我想我正在讀os.environ,並沒有把它看作在wget中全局設置'http_proxy'。謝謝。 – Benloper

相關問題