J'exécute Python 2.7.6 sur une machine Ubuntu. Lorsque j'exécute twill-sh
(Twill est un navigateur utilisé pour tester des sites Web) dans mon terminal, les éléments suivants sont disponibles:
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
Cependant, je peux très bien importer urllib dans la console Python. Quelle pourrait être la raison?
Il existe une différence entre les variables urllib
et urllib2
standard et le urllib3
tiers.
Il semble que twill n'installe pas les dépendances, vous devez donc le faire vous-même. Twill dépend de la bibliothèque requests
qui est fournie avec et utilise urllib3
dans les coulisses. Vous avez également besoin des bibliothèques lxml
et cssselect
.
Vous pouvez les installer sur le terminal comme suit:
pip install requests
pip install lxml
et
pip install cssselect
Si vous avez déjà des 'demandes' installées à partir d'une version par défaut, vous devrez peut-être
Sudo pip install --upgrade requests
Merci à @bkzland d'avoir commenté la réponse précédente:
J'ai suivi ces étapes en ayant la même erreur, je devais utiliser Sudo pip installez --upgrade à chaque fois pour le faire fonctionner. - bkzland 17 déc. 15 à 12:57
--- maintenant, comment en faire une dépendance dans mon fichier setup.py?
Si vous rencontrez une saveur à base de RHEL, alors:
yum install -y python-requests
Saveur basée sur Debian/Ubuntu:
apt-get install -y python-requests
Saveur basée sur Arch Linux:
pacman -S python-requests
Problème décidé par:
pip install --upgrade urllib3==1.19.1
pip install --upgrade requests