ImportError: cannot import name 'urlencode' when trying to install flask.ext.storage

Rodolfo Alvarez picture Rodolfo Alvarez · May 17, 2017 · Viewed 24.7k times · Source

I am working with Python 3.5.1 / Window 8.1

>>pip install -e git://github.com/kvesteri/flask-storage.git#egg=Flask-Storage

This is the outcome:

Obtaining Flask-Storage from git+git://github.com/kvesteri/flask-storage.git#egg=Flask-Storage
  Updating c:\users\rodolfo\desktop\dumppython\flask\venv\src\flask-storage clone
Requirement already satisfied: Flask>=0.7 in c:\users\rodolfo\desktop\dumppython\flask\venv\lib\site-packages (from Flask-Storage)
Requirement already satisfied: boto>=2.5.2 in c:\users\rodolfo\desktop\dumppython\flask\venv\lib\site-packages (from Flask-Storage)
Collecting python-cloudfiles>=1.7.10 (from Flask-Storage)
  Using cached python-cloudfiles-1.7.11.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\Rodolfo\AppData\Local\Temp\pip-build-t2cefnr2\python-cloudfiles\setup.py", line 6, in <module>
        from cloudfiles.consts import __version__
      File "C:\Users\Rodolfo\AppData\Local\Temp\pip-build-t2cefnr2\python-cloudfiles\cloudfiles\__init__.py", line 82, in <module>
        from cloudfiles.connection     import Connection, ConnectionPool
      File "C:\Users\Rodolfo\AppData\Local\Temp\pip-build-t2cefnr2\python-cloudfiles\cloudfiles\connection.py", line 13, in <module>
        from    urllib    import urlencode
    ImportError: cannot import name 'urlencode'

Answer

Ross Deane picture Ross Deane · Jun 27, 2017

The urllib module has been split into parts and renamed in Python 3 to urllib.request, urllib.parse, and urllib.error.

[From https://docs.python.org/2/library/urllib.html]

So in Python 2 it's:

from urllib import urlencode

And in Python 3 it's:

from urllib.parse import urlencode