如何修复ImportError:没有名为packages.urllib3的模块?

Jos*_*ohn 14 python urllib2 twill urllib3

我在Ubuntu机器上运行Python 2.7.6.当我twill-sh在终端中运行(Twill是用于测试网站的浏览器)时,我得到以下内容:

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
Run Code Online (Sandbox Code Playgroud)

但是,我可以在Python控制台中导入urllib就好了.可能是什么原因?

Fli*_*McF 23

如果您已经从默认构建安装了"请求",则可能必须这样做

sudo pip install --upgrade requests

感谢@bkzland对先前回答的评论:

我按照这些步骤进行了相同的错误,我需要每次使用sudo pip install --upgrade才能使其正常工作. - bkzland 2015年12月17日12:57

---现在,如何在setup.py中将其作为依赖?


dop*_*tar 16

标准版urlliburllib2第三方之间存在差异urllib3.

看起来twill不会安装依赖项,因此您必须自己完成.斜纹取决于requests随附的图书馆并urllib3在幕后使用.你还需要lxmlcssselect库.

您可以按如下方式在终端上安装它们:

pip install requests

pip install lxml

pip install cssselect

  • 我按照这些步骤进行了相同的错误,我需要每次使用sudo pip install --upgrade才能使其正常工作. (5认同)
  • 是的,我已经安装了这些软件包。首先我安装了 python-pip,然后使用 pip 安装了其他软件包。错误消息没有变化。我什至重新安装了Python,但没有成功。 (2认同)

Ahm*_*man 9

蟒蛇3

#note that requests.packages.urllib3 is just an alias for urllib3
from urllib3 import disable_warnings
from urllib3.exceptions import InsecureRequestWarning
disable_warnings(InsecureRequestWarning)
Run Code Online (Sandbox Code Playgroud)

  • 虽然这可能会回答问题,但您应该编辑答案以包含一些解释,说明为什么这可以解决问题中的问题。这对于以后遇到相同问题的人来说更有价值 (5认同)

Vis*_*mar 5

如果你有基于RHEL的味道,那么:

yum install -y python-requests

Debian/Ubuntu基于风味:

apt-get install -y python-requests

基于Arch Linux的风味:

pacman -S python-requests