2014-12-12 9 views
8

Tôi đang chạy Python 2.7.6 trên máy Ubuntu. Khi tôi chạy twill-sh (Twill là một trình duyệt sử dụng cho các trang web thử nghiệm) trong Terminal của tôi, tôi nhận được như sau:Cách sửa lỗi ImportError: Không có mô-đun có tên packages.urllib3?

Traceback (most recent call last): 
    File "dep.py", line 2, in <module> 
    import twill.commands 
    File "/usr/local/lib/python2.7/dist-packages/twill/__init__.py", line 52, in <module> 
    from shell import TwillCommandLoop 
    File "/usr/local/lib/python2.7/dist-packages/twill/shell.py", line 9, in <module> 
    from twill import commands, parse, __version__ 
    File "/usr/local/lib/python2.7/dist-packages/twill/commands.py", line 75, in <module> 
    browser = TwillBrowser() 
    File "/usr/local/lib/python2.7/dist-packages/twill/browser.py", line 31, in __init__ 
    from requests.packages.urllib3 import connectionpool as cpl 
ImportError: No module named packages.urllib3 

Tuy nhiên, tôi có thể nhập urllib bằng Python console tốt. Điều gì có thể là lý do?

Trả lời

13

Có sự khác biệt giữa tiêu chuẩn urlliburllib2 và bên thứ ba urllib3.

Dường như twill không cài đặt các phụ thuộc, do đó bạn phải tự làm. Twill phụ thuộc vào thư viện requests đi kèm và sử dụng urllib3 phía sau hậu trường. Bạn cũng cần thư viện lxmlcssselect.

Bạn có thể cài đặt chúng trên thiết bị đầu cuối như sau:

pip install requests

pip install lxml

pip install cssselect

+0

Nếu bạn đang cài đặt chung, bạn có thể cần phải chuyển sang root hoặc tiền tố mỗi lệnh trên với 'sudo' và nhập mật khẩu của bạn sau lần đầu tiên. –

+1

Có, tôi đã cài đặt các gói này. Đầu tiên tôi cài đặt python-pip, sau đó sử dụng pip, tôi đã cài đặt các gói khác. Không có thay đổi trong thông báo lỗi. Tôi thậm chí cài đặt lại Python, nhưng không có may mắn. –

+4

Tôi đã làm theo các bước này có cùng lỗi, tôi cần sử dụng sudo pip install --upgrade mỗi lần để nó hoạt động. – bkzland

17

Nếu bạn đã có cài đặt từ một xây dựng mặc định 'yêu cầu', bạn có thể phải

sudo pip install --upgrade requests

tín dụng để @bkzland từ bình luận về câu trả lời trước:

I followed these steps having the same error, I needed to use sudo pip install --upgrade each time to make it work. – bkzland Dec 17 '15 at 12:57

--- bây giờ, làm thế nào để thực hiện điều này phụ thuộc vào setup.py của tôi?

+1

trong thiết lập thêm 'yêu cầu = ['yêu cầu']' – Eli

+0

Sẽ không tìm thấy phiên bản cũ của yêu cầu, phụ thuộc hiện đang đáp ứng, và chúng tôi nhận được sự thất bại OP đã quan sát? – FlipMcF

4

Nếu bạn đang gặp một hương vị RHEL dựa, sau đó:

yum install -y python-requests

Debian/Ubuntu dựa hương vị:

apt-get install -y python-requests

Arch Linux dựa hương vị:

pacman -S python-requests

Các vấn đề liên quan