Lỗi như module 'socks' has no attribute 'create_connection' xảy ra trước khi một yêu cầu proxy thành công. Hãy bắt đầu với mô-đun Python mà ứng dụng đã nhập.

import sys
import socks

print(sys.executable)
print(socks.__file__)
print(getattr(socks, '__version__', 'unknown'))

Các dòng kiểm tra này xác định trình thông dịch và tệp đã nhập. Hãy đọc chúng trong cùng môi trường ứng dụng nơi xảy ra lỗi. Một terminal dùng môi trường ảo khác có thể nhập một tệp khác cùng tên.

Kiểm tra xem một tệp hoặc gói socks.py cục bộ có đang che khuất phần phụ thuộc dự định không. Đường dẫn tìm kiếm mô-đun của Python có thể khiến tệp đó thắng gói đã cài. Hãy đổi tên có chủ ý xung đột tình cờ và khởi động lại tiến trình đã nhập nó.

Mã nguồn của PySocks chứa cả set_default_proxy và cách viết tương thích setdefaultproxy, cùng với create_connection. Vì vậy thay đổi mù quáng một cách viết không phải là chẩn đoán đầy đủ về một thuộc tính bị thiếu.

Sau khi mô-đun đã nhập và phiên bản đã đúng, hãy so sánh mã với API được ghi chép của dự án đó. Tránh thêm thủ công các thư mục thư viện hệ thống không liên quan vào đường dẫn tìm kiếm của Python cho đến khi việc nhập có vẻ hoạt động. Điều đó có thể trộn lẫn các phiên bản phụ thuộc và để mặc sự không khớp của môi trường nền không được giải quyết.

Bài viết liên quan