libtorrent現在支持python3嗎?如果支持如何安裝它。我想用python3編碼一個DHT Crawler,我不知道爲什麼我的代碼很快被對等錯誤重置了連接,所以我想使用libtorrent,如果有另一個lib,我很樂意使用它。我最大的問題是,將infohash轉換爲torrent文件。它可能是一個代碼問題?Python3.6如何安裝libtorrent?
class Crawler(Maga):
async def handler(self, infohash, addr):
fetchMetadata(infohash, addr)
def fetchMetadata(infohash, addr, timeout=5):
tcpServer = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcpServer.settimeout(timeout)
if tcpServer.connect_ex(addr) == 0:
try:
# handshake
send_handshake(tcpServer, infohash)
packet = tcpServer.recv(4096)
# handshake error
if not check_handshake(packet, infohash):
return
# ext handshake
send_ext_handshake(tcpServer)
packet = tcpServer.recv(4096)
# get ut_metadata and metadata_size
ut_metadata, metadata_size = get_ut_metadata(packet), get_metadata_size(packet)
# request each piece of metadata
metadata = []
for piece in range(int(math.ceil(metadata_size/(16.0 * 1024)))):
request_metadata(tcpServer, ut_metadata, piece)
packet = recvall(tcpServer, timeout) # the_socket.recv(1024*17) #
metadata.append(packet[packet.index("ee") + 2:])
metadata = "".join(metadata)
logging.info(bencoder.bdecode(metadata))
except ConnectionResetError as e:
logging.error(e)
except Exception as e:
logging.error(e)
finally:
tcpServer.close()
我只是運行test.py ,我得到了錯誤: 回溯(最近通話最後一個): 文件,3號線,在 進口libtorrent爲LT 導入錯誤 「\ test.py」:DLL加載失敗:%1不是有效的Win32的應用程序 –
Python版本是Python 3.6.2(v3.6.2:5fd33b5,2017年7月8日,04:57:36)[MSC v.1900 64位(AMD64)]在win32 –
上,表明構建失敗或者構建的版本錯誤蟒蛇。它也可能意味着模塊找不到它的一個依賴關係。你可以嘗試libtorrent-link = static和boost-link = static。你在建立哪個版本的libtorrent? appveyor腳本爲Windows上的python 3構建。 – Arvid