43
votes

I have installed python 2(64 bit), on windows 8.1 (64 bit) and wanted to know pip version and for that I fired pip --version but it is giving error.

    C:\Users\ADMIN>pip --version
Traceback (most recent call last):
  File "c:\dev\python27\lib\runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "c:\dev\python27\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\dev\Python27\Scripts\pip.exe\__main__.py", line 5, in <module>
  File "c:\dev\python27\lib\site-packages\pip\__init__.py", line 15, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "c:\dev\python27\lib\site-packages\pip\vcs\mercurial.py", line 10, in <module>
    from pip.download import path_to_url
  File "c:\dev\python27\lib\site-packages\pip\download.py", line 35, in <module>
    from pip.utils.ui import DownloadProgressBar, DownloadProgressSpinner
  File "c:\dev\python27\lib\site-packages\pip\utils\ui.py", line 51, in <module>
    _BaseBar = _select_progress_class(IncrementalBar, Bar)
  File "c:\dev\python27\lib\site-packages\pip\utils\ui.py", line 44, in _select_progress_class
    six.text_type().join(characters).encode(encoding)
LookupError: unknown encoding: cp65001

Note : The same command works fine for python 3. I have uninstalled both and installed again but still no success.

2
cp65001 is Windows double-speak for UTF-8. You can probably reconfigure your terminal temporarily to use an encoding which is known to your Python version (good old cp1252 perhaps?) and see if that helps. - tripleee
This happened to me spontaneously in Powershell after enabling Japanese input and output on Windows 10. Disabling it and restarting Powershell evidently resolved the issue. - WAF
chcp 850 solved it for me - something else in Windows randomly shifted the console to 65001, (an term emulator) so setting to 850 as a workaround to restarting the console. - Conrad B
You shouldn't get this error on Python 3.8 where cp65001 has become an alias of utf-8. docs.python.org/3/library/codecs.html#standard-encodings (scroll to the bottom) - Boris

2 Answers

99
votes

The error means that Unicode characters that your script are trying to print can't be represented using the current console character encoding.

Also try to run set PYTHONIOENCODING=UTF-8 after execute pip --version without reloading terminal if everything going well add PYTHONIOENCODING as env variable with value UTF-8. See How to set the path and environment variables in Windows article to get info how to add Windows variable.

NOTE: For PowerShell use $env:PYTHONIOENCODING = "UTF-8"

Also you can try to install win-unicode-console with pip:

pip install win-unicode-console

Then reload your terminal and try to execute pip --version

However you can follow suggestions from Windows cmd encoding change causes Python crash answer because you have same problem.

0
votes

First of all you need to upgrade your pip. You can do this in Windows by:

python -m pip install -U pip

Then go manually to your script folder, enter command line from that folder (you can do this by clicking shift + right mouse button -> Open console window), and then you should use one of this commands.

pip -V
pip --version

This will result in

pip 7.1.2 from c:\python27\lib\site-packages (python 2.7)

If you still have trouble, you can try to remove your current Python PATH, and add a new one to Python 2.7.