2

FTP 経由でリモート サーバーにアクセスしているときに、次のエラーが発生します。何が問題なのかわからないので、解決できます。どんなリードも役に立ちます。

コード:

import ftplib
from ftplib import FTP
ftp = ftplib.FTP("server_name")

エラー:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/ftplib.py", line 116, in __init__
    self.connect(host)
  File "/usr/lib64/python2.6/ftplib.py", line 131, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout)
  File "/usr/lib64/python2.6/socket.py", line 553, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno -2] Name or service not known
4

2 に答える 2

0

このエラーは、 という名前のホストが見つからないことを示していますserver_name。だから、それはあなたがデバッグする必要があるものです。

ping server_name端末/DOS プロンプトを使用している場合、動作しますか、それとも次のようなエラーが表示されますかcannot resolve server_name? ftp server_nameターミナルにいる場合はどうなりますか?

ターミナルですべてが機能し、コードにばかげたタイプミスがない場合、次のステップは、Python が間違っている理由をデバッグすることです。getaddrinfo明示的に呼び出そうとするコードを書いて、何が起こるか見てみましょう。socket.connect通常の IPv4 ソケットを試して、動作するかどうかを確認します。(そうであれば、問題はおそらく IPv6 に関係しています。) などなど。

おそらく、ターミナルでも失敗します。その場合、サーバーの名前が間違っているか、ネットワークまたはシステムのセットアップに問題があります。いずれにせよ、これはプログラミングの問題ではなく、StackOverflow はそれ以上の手助けはできません。

于 2013-08-05T20:58:19.077 に答える