Полная трассировка стека:
➜ ~ pip install virtualenv
Traceback (most recent call last):
File "/usr/bin/pip", line 11, in <module>
sys.exit(main())
File "/usr/lib/python3.4/site-packages/pip/__init__.py", line 215, in main
locale.setlocale(locale.LC_ALL, '')
File "/usr/lib64/python3.4/locale.py", line 592, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
На этом же сервере я успешно запустил pip install virtualenv
Python 2.7.x.
Теперь я только что установил python3.4, используя curl https://bootstrap.pypa.io/get-pip.py | python3.4
.
➜ ~ pip --version
pip 8.1.1 from /usr/lib/python3.4/site-packages (python 3.4)
pip uninstall virtualenv
выдает ту же ошибку тоже
python
python-3.x
centos
pip
ericn
источник
источник
LANG=en_GB.utf8
Ответы:
Основная причина: ваша переменная окружения
LC_ALL
как-то отсутствует или недействительнаКороткий ответ-
просто запустите следующую команду:
Если вы продолжаете получать сообщение об ошибке в новых окнах терминала, добавьте его внизу
.bashrc
файла.Длинный ответ-
Вот мои
locale
настройки:python2.7
источник
export LC_ALL=C
помог.LC_ALL=C
значит, смотрите здесь .Запустите следующую команду (она будет работать):
источник
dpkg-reconfigure
предназначена для использования в системах на основе Debian. Этот вопрос помеченcentos
как производная RHEL, которая не обеспечивает поддержку dpkg, если вы не включитеepel-release
репозиторий и не установите пакетыdpkg-devel
&dpkg-dev
. Даже тогда это не идеальное решение.Кто-то может найти это полезным. Вы можете поместить эти настройки локали в файл .bashrc, который обычно находится в домашнем каталоге.
Просто добавьте эту команду в .bashrc:
export LC_ALL=C
затем введите
source .bashrc
Теперь вам не нужно вызывать эту команду каждый раз, когда вы подключаетесь, например, через ssh.
источник
Хотя вы можете установить локаль, экспортирующую переменную env, вам придется делать это каждый раз, когда вы запускаете сеанс. Установка локали таким образом решит проблему навсегда:
источник
sudo
на той же линии, что вы пытаетесь установить его?sudo apt-get install ... sudo ...
[Этот ответ предназначен только для платформы Linux]
Первое, что вы должны знать, это то, что путь к большей части файла конфигурации локали можно получить из
localedef --help
:Видишь последнее
/usr/share/i18n
? Здесь находится ваш конфигурационный файл xx_XX.UTF-8:Что теперь ? Нам нужно скомпилировать их в бинарный архив. Одним из способов, например, предположим, что у меня есть
/usr/share/i18n/locales/en_LOVE
, я могу добавить его в список компиляции, то есть/etc/locale-gen
файл:И скомпилируйте его в двоичный файл с помощью
sudo locale-gen
:А теперь обновите языковой стандарт по умолчанию системы, используя желаемое
LANG
, иLC_ALL
т. Д. С помощью этогоupdate-locale
:update-locale
на самом деле также означает обновить этот/etc/default/locale
файл, который будет источником системы при входе в систему для настройки переменных среды:Но мы можем не захотеть перезагружаться, чтобы вступить в силу, поэтому мы можем просто поместить его в переменную окружения в текущем сеансе оболочки:
Как насчет
sudo dpkg-reconfigure locales
? Если вы поэкспериментируете с этим, вы поймете, что эта команда в основном действует как графический интерфейс для упрощения описанных выше шагов, т.е. Edit/etc/locale.gen
->sudo locale-gen
->sudo update-locale LANG=en_LOVE.UTF-8
Для python, если он
/etc/locale.gen
содержит кандидата на локаль иlocale.gen
компилируется,setlocale(category, locale)
должен работать без бросковlocale.Error: unsupoorted locale setting
. Вы можете проверить правильную строкуen_US.UTF-8
/en_US/....etc
для установкиsetlocale()
, наблюдая за/etc/locale.gen
файлом, а затем раскомментировать и скомпилировать его по желанию.zh_CN GB2312
без точки в этом файле означает правильную строкуzh_CN
иzh_CN.GB2312
.источник
/etc/locale.gen
, раскомментируйтеzh_CN.UTF-8
строку; 2sudo locale-gen
..Для Dockerfile это работает для меня:
Как установить locale-gen?
docker ubuntu / bin / sh: 1: locale-gen: не найден
источник
У меня была такая же проблема, и у меня не работало .
"export LC_ALL=c"
Попробуйте
export LC_ALL="en_US.UTF-8"
(это будет работать).источник
Сообщение об ошибке указывает на проблему с настройкой локали. Чтобы исправить это, как указано в других ответах, вам нужно изменить свой язык.
В Mac OS X Sierra я обнаружил, что лучший способ сделать это - изменить
~/bash_profile
файл следующим образом:Это изменение не будет сразу видно в текущем сеансе Cli , если вы загрузите профиль оргии с помощью:
source ~/.bash_profile
.Этот ответ довольно близок к ответам, которые я отправил на другие неидентичные, не дублирующие вопросы (т.е. не относящиеся к pipenv), но которые требуют того же решения.
Модератору: с уважением; мой предыдущий ответ был удален по этой причине, но я чувствую, что это было немного глупо, потому что на самом деле этот ответ применяется почти всякий раз, когда ошибка "проблема с языковым стандартом" ... но есть ряд различных ситуаций, языков и сред, которые могут вызвать эта ошибка.
Таким образом, А) не имеет смысла отмечать вопросы как дубликаты, а Б) не имеет смысла адаптировать ответ либо потому, что исправление очень простое, одинаковое в каждом случае и не имеет преимуществ от орнаментирования.
источник
Ubuntu:
$ sudo vi /etc/default/locale
Добавьте ниже настройки в конце файла.
LC_ALL = en_US.UTF-8
источник