pypa / pipenv

Python Development Workflow for Humans.
https://pipenv.pypa.io
MIT License
24.74k stars 1.86k forks source link

UnicodeEncodeError: 'latin-1' codec can't encode character '\u2013' in position 1740: ordinal not in range(256) #2074

Closed waketzheng closed 6 years ago

waketzheng commented 6 years ago

I wanted to use pipenv at ubuntu-17.10 which was created by vagrant at virtualbox. After run the following commands, it raise the UnicodeEncodeError:

$ vagrant init generic/ubuntu1710
$ vagrant up
$ vagrant ssh
$ sudo apt install python3-pip
$ sudo pip3 install pipenv
$ pipenv
Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 11, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 1043, in invoke
    return Command.invoke(self, ctx)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/cli.py", line 240, in cli
    click.echo(core.format_help(ctx.get_help()))
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/utils.py", line 259, in echo
    file.write(message)
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2013' in position 1740: ordinal not in range(256)
vagrant@ubuntu1710:~$ python3 -m pipenv.help
<details><summary>$ python -m pipenv.help output</summary>

Pipenv version: `'11.10.0'`

Pipenv location: `'/usr/local/lib/python3.6/dist-packages/pipenv'`

Python location: `'/usr/bin/python3'`

Other Python installations in `PATH`:

  - `3.6`: `/usr/bin/python3.6m`
  - `3.6`: `/usr/bin/python3.6`

  - `3.6.3`: `/usr/bin/python3`

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.6.3',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '4.13.0-38-generic',
 'platform_system': 'Linux',
 'platform_version': '#43-Ubuntu SMP Wed Mar 14 15:20:44 UTC 2018',
 'python_full_version': '3.6.3',
 'python_version': '3.6',
 'sys_platform': 'linux'}

System environment variables:

  - `LS_COLORS`
  - `SSH_CONNECTION`
  - `LESSCLOSE`
  - `LANG`
  - `S_COLORS`
  - `XDG_SESSION_ID`
  - `USER`
  - `PWD`
  - `HOME`
  - `SSH_CLIENT`
  - `XDG_DATA_DIRS`
  - `SSH_TTY`
  - `MAIL`
  - `repo`
  - `TERM`
  - `SHELL`
  - `SHLVL`
  - `LANGUAGE`
  - `LOGNAME`
  - `XDG_RUNTIME_DIR`
  - `PATH`
  - `LESSOPEN`
  - `_`
  - `PYTHONDONTWRITEBYTECODE`
  - `PIP_PYTHON_PATH`
  - `PYTHONUNBUFFERED`

Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/help.py", line 89, in <module>
    main()
  File "/usr/local/lib/python3.6/dist-packages/pipenv/help.py", line 48, in main
    print(u'Pipenv\u2013specific environment variables:')
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2013' in position 6: ordinal not in range(256)

How to fix this error?

techalchemy commented 6 years ago

you need to set your environment locale: export LC_ALL=en_US.UTF-8