Python的错误:类型错误:getsockaddrarg:AF_INET地址必须是元组,不是int

Python的错误:类型错误:getsockaddrarg:AF_INET地址必须是元组,不是int

问题描述:

当我启动我的程序:Python的错误:类型错误:getsockaddrarg:AF_INET地址必须是元组,不是int

import bitcoinrpc 
import csv 

# docs at https://github.com/massanchik/bitcoin-python3 
# docs at https://docs.python.org/3.3/library/csv.html 


user = 'user' 
password = 'password' 
port = '44555' 
host='127.0.0.1' 

access = bitcoinrpc.connect_to_remote(user, password, host, port) 

print(access.getinfo()) 

我收到以下错误:

Traceback (most recent call last): 
    File "electrum_to_clam.py", line 14, in <module> 
    print(access.getinfo()) 
    File "/usr/local/lib/python3.4/dist-packages/bitcoinrpc/connection.py", line 133, in getinfo 
    return ServerInfo(**self.proxy.getinfo()) 
    File "/usr/local/lib/python3.4/dist-packages/bitcoinrpc/proxy.py", line 116, in __call__ 
    resp = self._service_proxy._transport.request(postdata) 
    File "/usr/local/lib/python3.4/dist-packages/bitcoinrpc/proxy.py", line 67, in request 
    'Content-type': 'application/json'}) 
    File "/usr/lib/python3.4/http/client.py", line 1065, in request 
    self._send_request(method, url, body, headers) 
    File "/usr/lib/python3.4/http/client.py", line 1103, in _send_request 
    self.endheaders(body) 
    File "/usr/lib/python3.4/http/client.py", line 1061, in endheaders 
    self._send_output(message_body) 
    File "/usr/lib/python3.4/http/client.py", line 906, in _send_output 
    self.send(msg) 
    File "/usr/lib/python3.4/http/client.py", line 841, in send 
    self.connect() 
    File "/usr/lib/python3.4/http/client.py", line 819, in connect 
    self.timeout, self.source_address) 
    File "/usr/lib/python3.4/socket.py", line 499, in create_connection 
    sock.bind(source_address) 
TypeError: getsockaddrarg: AF_INET address must be tuple, not int 

可能是什么原因和我该如何解决它?

+0

我也有同样的错误,使用可变端口INT不能解决问题。 Python3.4 –

您的端口必须是int而不是str。用途:

port = 44555 
+0

更改我的程序https://bpaste.net/show/29f1a5b89b02仍然是同样的错误。 – user1540982

NHOR只是写它,因为这里

https://laanwj.github.io/bitcoin-python/doc/bitcoinrpc.html

bitcoinrpc.connect_to_remote(user, password, host='localhost', port=8332, use_https=False) 

一个元组是像(A,B,C ...)提到的端口应该是int。 帕拉姆应该是一个元组,那就试试这个:

access = bitcoinrpc.connect_to_remote((user, password, host, port)) 

或以其他方式

con_data = (user, password, host, port) 
access = bitcoinrpc.connect_to_remote(con_data)