NLTK のプロキシ認証情報: set_proxy のシグネチャを確認する
set_proxy をインストール済みの NLTK のシグネチャに合わせ、urllib opener の適用範囲を把握しておきます。
proxy、user、password を個別のパラメーターとして渡す実装の場合:
import getpass
import nltk
proxy_user = input("Proxy username: ")
proxy_password = getpass.getpass("Proxy password: ")
nltk.set_proxy(
"http://proxy.example.net:8080",
user=proxy_user,
password=proxy_password,
)
nltk.download("punkt")古い tuple 形式や URL ログインの例を流用する前に、プログラムが使う NLTK のバージョンでシグネチャを確認してください。エンドポイントは NLTK のデータ索引ではなくプロキシであり、punkt はアプリケーションが必要とするパッケージに置き換える例示的なリソースです。
set_proxy はプロキシハンドラー付きの urllib opener を、認証情報が渡された場合はプロキシ認証ハンドラーも含めてインストールします。Requests、HTTPX、任意のソケット、すべてのサブプロセスを設定するわけではありません。
認証要求が繰り返される場合は、サービスが要求する方式と利用可能なハンドラーを比較する必要があります。正しい引数を渡しても、あらゆるエンタープライズ認証方式が追加されるわけではありません。
転送は成功したのに NLTK がデータを見つけられない場合は、検索パスとパッケージの配置を別個のローカルデータの問題として調べてください。手動ダウンロードは意図的なデプロイ判断であり得ますが、呼び出しのシグネチャが無効であることを示すものではなく、未解決のプロキシエラーの説明にもなりません。認証情報はコミット済みスクリプトやコピーした URL に残さないでください。