2017-08-28 12 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のに切り替え、私は私がリセットする必要がない、[errnoが110​​01]を取得します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

関連する問題