Stacktrace penuh:
➜ ~ 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
Di server yang sama, saya berhasil berlari pip install virtualenv
dengan python 2.7.x.
Sekarang, saya baru saja menginstal python3.4 menggunakan 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
melempar kesalahan yang sama juga
python
python-3.x
centos
pip
ericn
sumber
sumber
LANG=en_GB.utf8
Jawaban:
Penyebab utamanya adalah: variabel lingkungan Anda
LC_ALL
entah bagaimana hilang atau tidak validJawaban singkat-
jalankan saja perintah berikut:
Jika Anda terus mendapatkan kesalahan di jendela terminal baru, tambahkan di bagian bawah
.bashrc
file Anda .Jawaban panjang-
Ini
locale
pengaturan saya :Python2.7
sumber
export LC_ALL=C
membantu.LC_ALL=C
artinya, lihat di sini .Jalankan perintah berikut (ini akan bekerja):
sumber
dpkg-reconfigure
Perintah ini dimaksudkan untuk digunakan pada sistem berbasis Debian. Pertanyaan ini ditandai dengancentos
, turunan RHEL yang tidak memberikan dukungan untuk dpkg kecuali Anda mengaktifkanepel-release
repositori, dan menginstal paketdpkg-devel
&dpkg-dev
. Meski begitu, ini bukan solusi ideal.Seseorang mungkin menganggapnya berguna. Anda bisa meletakkan pengaturan lokal itu di file .bashrc, yang biasanya terletak di direktori home.
Cukup tambahkan perintah ini di .bashrc:
export LC_ALL=C
lalu ketik
source .bashrc
Sekarang Anda tidak perlu memanggil perintah ini secara manual setiap kali, ketika Anda terhubung melalui ssh misalnya.
sumber
Meskipun Anda dapat mengatur lokal mengekspor variabel env, Anda harus melakukannya setiap kali memulai sesi. Mengatur lokal dengan cara ini akan menyelesaikan masalah secara permanen:
sumber
sudo
jalur yang sama dengan yang Anda coba instal?sudo apt-get install ... sudo ...
[Jawaban ini hanya untuk platform linux]
Hal pertama yang harus Anda ketahui adalah sebagian besar lokasi path file config terletak dapat diperoleh dari
localedef --help
:Lihat yang terakhir
/usr/share/i18n
? Di sinilah file konfigurasi xx_XX.UTF-8 Anda berada:Sekarang apa ? Kita perlu mengkompilasinya ke dalam arsip biner. Salah satu caranya, misalkan anggap saya punya
/usr/share/i18n/locales/en_LOVE
, saya bisa menambahkannya ke daftar kompilasi, yaitu/etc/locale-gen
file:Dan kompilasi ke biner dengan
sudo locale-gen
:Dan sekarang perbarui lokal sistem default dengan yang diinginkan
LANG
,LC_ALL
... dll dengan iniupdate-locale
:update-locale
sebenarnya juga berarti memperbarui/etc/default/locale
file ini yang akan sumber oleh sistem saat login ke pengaturan variabel lingkungan:Tetapi kita mungkin tidak ingin mem-boot ulang agar berfungsi, jadi kita bisa sumberkan saja ke variabel lingkungan di sesi shell saat ini:
Bagaimana dengan
sudo dpkg-reconfigure locales
? Jika Anda memutarnya, Anda akan tahu perintah ini pada dasarnya bertindak sebagai GUI untuk menyederhanakan langkah-langkah di atas, yaitu Edit/etc/locale.gen
->sudo locale-gen
->sudo update-locale LANG=en_LOVE.UTF-8
Untuk python, selama
/etc/locale.gen
mengandung kandidat lokal itu danlocale.gen
dikompilasi,setlocale(category, locale)
harus bekerja tanpa lemparanlocale.Error: unsupoorted locale setting
. Anda dapat memeriksa string yang benaren_US.UTF-8
/ yangen_US/....etc
akan ditetapkansetlocale()
, dengan mengamati/etc/locale.gen
file, dan kemudian menghapus komentar dan mengkompilasinya sesuai keinginan.zh_CN GB2312
tanpa titik dalam file itu berarti string yang benar adalahzh_CN
danzh_CN.GB2312
.sumber
/etc/locale.gen
, batalkan komentar padazh_CN.UTF-8
baris; 2sudo locale-gen
..Untuk Dockerfile, ini berfungsi untuk saya:
Bagaimana cara menginstal locale-gen?
buruh pelabuhan ubuntu / bin / sh: 1: locale-gen: tidak ditemukan
sumber
Saya memiliki masalah yang sama, dan tidak berhasil untuk saya .
"export LC_ALL=c"
Coba
export LC_ALL="en_US.UTF-8"
(ini akan berhasil).sumber
Pesan kesalahan menunjukkan masalah dengan pengaturan lokal. Untuk memperbaikinya seperti yang ditunjukkan oleh jawaban lain Anda perlu mengubah lokal Anda.
Pada Mac OS X Sierra saya menemukan bahwa cara terbaik untuk melakukan ini adalah memodifikasi
~/bash_profile
file sebagai berikut:Perubahan ini tidak akan segera jelas dalam sesi cli Anda saat ini kecuali Anda reload profil pesta dengan menggunakan:
source ~/.bash_profile
.Jawaban ini cukup dekat dengan jawaban yang telah saya posting ke pertanyaan non-identik, non-duplikat lainnya (yaitu tidak terkait dengan pipenv) tetapi yang kebetulan membutuhkan solusi yang sama.
Untuk moderator: Dengan hormat; jawaban saya sebelumnya dihapus karena alasan ini tetapi saya merasa itu agak konyol karena sebenarnya jawaban ini berlaku hampir setiap kali kesalahannya adalah "masalah dengan lokal" ... tetapi ada sejumlah situasi, bahasa, dan lingkungan yang berbeda yang dapat memicu kesalahan itu.
Jadi, A) tidak masuk akal untuk menandai pertanyaan sebagai duplikat dan B) tidak masuk akal untuk menyesuaikan jawaban baik karena perbaikannya sangat sederhana, sama dalam setiap kasus dan tidak mendapat manfaat dari ornamen.
sumber
Ubuntu:
$ sudo vi /etc/default/locale
Tambahkan pengaturan di bawah ini di akhir file.
LC_ALL = en_US.UTF-8
sumber