web-dev-qa-db-ja.com

ImportErrorの修正方法:packages.urllib3というモジュールはありませんか?

UbuntuマシンでPython 2.7.6を実行しています。twill-sh(TwillはWebサイトのテストに使用されるブラウザです)ターミナルで、次のものを取得しています:

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

ただし、urllibをPython consoleで問題なくインポートできます。理由は何ですか?

13
Joseph John

標準のurlliburllib2とサードパーティのurllib3には違いがあります。

Twillは依存関係をインストールしないため、自分で行う必要があります。 Twillは、舞台裏でurllib3に付属し使用するrequestsライブラリに依存しています。 lxmlおよびcssselectライブラリも必要です。

次のように端末にインストールできます。

pip install requests

pip install lxml

そして

pip install cssselect

15
dopstar

既にデフォルトビルドから「リクエスト」がインストールされている場合、

Sudo pip install --upgrade requests

前の回答のコメントから@bkzlandにクレジット:

同じエラーが発生するこれらの手順に従いました。Sudopip install --upgradeを使用して動作させる必要がありました。 – bkzland 15年12月17日12:57に

---では、setup.pyでこれを依存関係にするにはどうすればよいですか?

22
FlipMcF

RHELベースのフレーバーを使用している場合:

yum install -y python-requests

Debian/Ubuntuベースのフレーバー:

apt-get install -y python-requests

Arch Linuxベースのフレーバー:

pacman -S python-requests

5
Vishnu Kumar

python

#note that requests.packages.urllib3 is just an alias for urllib3
from urllib3 import disable_warnings
from urllib3.exceptions import InsecureRequestWarning
disable_warnings(InsecureRequestWarning)
0
ahmed.soli

決定した問題:

pip install --upgrade urllib3==1.19.1
pip install --upgrade requests
0
ak3191