簡體   English   中英

Urllib3 socks5代理錯誤:'socks'沒有屬性'create_connection'

[英]Urllib3 socks5 proxy error: 'socks' has no attribute 'create_connection'

我需要Robobrowser使用Tor,我認為最簡單的方式就是: Robobrowser和Sessions 但我遇到了一個奇怪的請求問題,或更具體的urllib3:

AttributeError:模塊'socks'沒有屬性'create_connection'

Urllib3文檔中所述, create_connection是socks的一個屬性。

Urllib3版本:1.19.1

請求版本:2.12.4

PySocks版本:1.6.5

import requests

session = requests.Session()
session.proxies = {'http':'socks5://127.0.0.1:9050'}
response = session.get('http://www.icanhazip.com', timeout=2)
print(response.text)

編輯:

堆棧跟蹤:

    Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 501, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 488, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 609, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 423, in send
    timeout=timeout
  File "/usr/local/lib/python3.5/dist-packages/requests/packages/urllib3/connectionpool.py", line 594, in urlopen
    chunked=chunked)
  File "/usr/local/lib/python3.5/dist-packages/requests/packages/urllib3/connectionpool.py", line 361, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python3.5/http/client.py", line 1106, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python3.5/http/client.py", line 1151, in _send_request
    self.endheaders(body)
  File "/usr/lib/python3.5/http/client.py", line 1102, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python3.5/http/client.py", line 934, in _send_output
    self.send(msg)
  File "/usr/lib/python3.5/http/client.py", line 877, in send
    self.connect()
  File "/usr/local/lib/python3.5/dist-packages/requests/packages/urllib3/connection.py", line 163, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.5/dist-packages/requests/packages/urllib3/contrib/socks.py", line 79, in _new_conn
    conn = socks.create_connection(
AttributeError: module 'socks' has no attribute 'create_connection'

這是因為你的python實例找不到所需的socks庫。

/usr/lib/python*中的庫是通過sudo apt-get install python3-requestssudo apt-get install python3-requests

但是,apt-get無法安裝urllib3使用的必需pysocks庫。 sudo apt-get install python3-socks無效。

如果你通過sudo -H pip3 install pysocks urllib3[socks] requests[socks]安裝它將會起作用

這將安裝在這里sudo ls -lrtah /usr/local/lib/python*/dist-packages/

確保終端會話在系統路徑中包含/usr/lib:/usr/local/lib 如果您的python實例仍然找不到您的socks庫,那么請確保兩個路徑都是〜/ .bashrc PYTHON_PATH導出的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM