Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Installing packages fails if Python 3 installed into path with non-ASCII characters #9054

Copy link
Copy link
Closed
@reflechant

Description

@reflechant
Issue body actions

Environment

  • pip version: 20.2.3 - 20.2.4
  • Python version: 3.9
  • OS: Windows 10 Home

Description
A fresh installation of Python 3.9 can't install any libraries with pip if username contains non-ASCII characters.
Probably it affects any paths with non-ASCII characters.

This is not new and happened before multiple times across recent years. One of the latest examples is #4984. I kindly suggest adding a unittest for that error.

This is especially bad because Python is number one language for education now. And such errors can confuse children a lot - they are not developers and are likely to have both prerequisites for this bug: 1) username in native language 2) installing Python with default settings

Expected behavior
pip is expected to work

How to Reproduce

  1. Create a user with non-ASCII name
  2. Install Python 3.9 with default settings
  3. Try to install any library with pip, for example pip install pylint
  4. An error occurs

Output

C:\Users\ФШЪЙAUC>C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\python.exe
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

C:\Users\ФШЪЙAUC>C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\python.exe -m pip install pylint
Collecting pylint
  Downloading pylint-2.6.0-py3-none-any.whl (325 kB)
     |--------------------------------| 325 kB 1.6 MB/s
Collecting mccabe<0.7,>=0.6
  Downloading mccabe-0.6.1-py2.py3-none-any.whl (8.6 kB)
Collecting isort<6,>=4.2.5
  Downloading isort-5.6.4-py3-none-any.whl (98 kB)
     |--------------------------------| 98 kB 6.4 MB/s
Collecting toml>=0.7.1
  Downloading toml-0.10.1-py2.py3-none-any.whl (19 kB)
Collecting colorama; sys_platform == "win32"
  Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Collecting astroid<=2.5,>=2.4.0
  Downloading astroid-2.4.2-py3-none-any.whl (213 kB)
     |--------------------------------| 213 kB 6.4 MB/s
Collecting six~=1.12
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting wrapt~=1.11
  Downloading wrapt-1.12.1.tar.gz (27 kB)
Collecting lazy-object-proxy==1.4.*
  Downloading lazy-object-proxy-1.4.3.tar.gz (34 kB)
ERROR: Exception:
Traceback (most recent call last):
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\cli\base_command.py", line 228, in _main
    status = self.run(options, args)
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\cli\req_command.py", line 182, in wrapper
    return func(self, options, args)
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\commands\install.py", line 323, in run
    requirement_set = resolver.resolve(
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 183, in resolve
    discovered_reqs.extend(self._resolve_one(requirement_set, req))
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 388, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 340, in _get_abstract_dist_for
    abstract_dist = self.preparer.prepare_linked_requirement(req)
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\operations\prepare.py", line 482, in prepare_linked_requirement
    abstract_dist = _get_prepared_distribution(
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\operations\prepare.py", line 91, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(finder, build_isolation)
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\distributions\sdist.py", line 38, in prepare_distribution_metadata
    self._setup_isolation(finder)
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\distributions\sdist.py", line 65, in _setup_isolation
    self.req.build_env = BuildEnvironment()
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\build_env.py", line 82, in __init__
    fp.write(textwrap.dedent(
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\encodings\cp1251.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 152-154: character maps to <undefined>
WARNING: You are using pip version 20.2.3; however, version 20.2.4 is available.
You should consider upgrading via the 'C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\python.exe -m pip install --upgrade pip' command.

C:\Users\ФШЪЙAUC>C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\python.exe -m pip install --upgrade pip
Collecting pip
  Downloading pip-20.2.4-py2.py3-none-any.whl (1.5 MB)
     |--------------------------------| 1.5 MB 2.2 MB/s
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.2.3
    Uninstalling pip-20.2.3:
      Successfully uninstalled pip-20.2.3
  WARNING: The scripts pip.exe, pip3.9.exe and pip3.exe are installed in 'C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-20.2.4

C:\Users\ФШЪЙAUC>C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\python.exe -m pip install pylint
Collecting pylint
  Using cached pylint-2.6.0-py3-none-any.whl (325 kB)
Collecting astroid<=2.5,>=2.4.0
  Using cached astroid-2.4.2-py3-none-any.whl (213 kB)
Collecting isort<6,>=4.2.5
  Using cached isort-5.6.4-py3-none-any.whl (98 kB)
Collecting colorama; sys_platform == "win32"
  Using cached colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Collecting toml>=0.7.1
  Using cached toml-0.10.1-py2.py3-none-any.whl (19 kB)
Collecting mccabe<0.7,>=0.6
  Using cached mccabe-0.6.1-py2.py3-none-any.whl (8.6 kB)
Collecting lazy-object-proxy==1.4.*
  Using cached lazy-object-proxy-1.4.3.tar.gz (34 kB)
ERROR: Exception:
Traceback (most recent call last):
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\cli\base_command.py", line 228, in _main
    status = self.run(options, args)
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\cli\req_command.py", line 182, in wrapper
    return func(self, options, args)
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\commands\install.py", line 323, in run
    requirement_set = resolver.resolve(
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 183, in resolve
    discovered_reqs.extend(self._resolve_one(requirement_set, req))
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 388, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 340, in _get_abstract_dist_for
    abstract_dist = self.preparer.prepare_linked_requirement(req)
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\operations\prepare.py", line 482, in prepare_linked_requirement
    abstract_dist = _get_prepared_distribution(
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\operations\prepare.py", line 91, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(finder, build_isolation)
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\distributions\sdist.py", line 38, in prepare_distribution_metadata
    self._setup_isolation(finder)
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\distributions\sdist.py", line 65, in _setup_isolation
    self.req.build_env = BuildEnvironment()
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\site-packages\pip\_internal\build_env.py", line 82, in __init__
    fp.write(textwrap.dedent(
  File "C:\Users\ФШЪЙAUC\AppData\Local\Programs\Python\Python39\lib\encodings\cp1251.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 152-154: character maps to <undefined>

C:\Users\ФШЪЙAUC>

Metadata

Metadata

Assignees

No one assigned

    Labels

    C: build logicStuff related to metadata generation / wheel generationStuff related to metadata generation / wheel generationC: encodingRelated to text encoding and likely, UnicodeErrorsRelated to text encoding and likely, UnicodeErrorsOS: windowsWindows specificWindows specifickind: crashFor situations where pip crashesFor situations where pip crashes

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.