2016-04-04 27 views
113

stacktrace completa locale non supportata:pip install - locale.Error: impostazione

➜ ~ 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 

sullo stesso server, ho già incontrato pip install virtualenv e sta ero python 2.7.x in quel momento.

Ora, ho appena installato python3.4 utilizzando 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 tiri lo stesso errore troppo

+2

Hai letto [questo] (http://stackoverflow.com/questions/14547631/python-locale-error-unsupported-locale-setting) ancora? – idjaw

+0

sì, ho @idjaw, nodo che è una stringa vuota nel mio caso, è diverso dal locale sbagliato che hai indicato – ericn

+0

Sì, l'ho notato. Hai provato il pkg-reconfigure? – idjaw

risposta

307

Breve risposta-

basta eseguire il seguente comando:

$ export LC_ALL=C 

lungo risposta-

Ecco il mio locale impostazioni:

$ locale 
LANG=en_US.UTF-8 
LANGUAGE= 
LC_CTYPE="C" 
LC_NUMERIC="C" 
LC_TIME="C" 
LC_COLLATE="C" 
LC_MONETARY="C" 
LC_MESSAGES="C" 
LC_PAPER="C" 
LC_NAME="C" 
LC_ADDRESS="C" 
LC_TELEPHONE="C" 
LC_MEASUREMENT="C" 
LC_IDENTIFICATION="C" 
LC_ALL=C 

Python2.7

$ uname -a 
    Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU/Linux 
    $ python --version 
    Python 2.7.9 
    $ pip --version 
    pip 8.1.1 from /usr/local/lib/python2.7/dist-packages (python 2.7) 
    $ unset LC_ALL 
    $ pip install virtualenv 
    Traceback (most recent call last): 
     File "/usr/local/bin/pip", line 11, in <module> 
     sys.exit(main()) 
     File "/usr/local/lib/python2.7/dist-packages/pip/__init__.py", line 215, in main 
     locale.setlocale(locale.LC_ALL, '') 
     File "/usr/lib/python2.7/locale.py", line 579, in setlocale 
     return _setlocale(category, locale) 
    locale.Error: unsupported locale setting 
    $ export LC_ALL=C 
    $ pip install virtualenv 
    Requirement already satisfied (use --upgrade to upgrade): virtualenv in /usr/local/lib/python2.7/dist-packages 
+2

quindi è solo questione di impostare una variabile di ambiente allora? Sai perché non l'ho mai visto prima? Questo valore non dovrebbe essere impostato automaticamente? – ericn

+0

@eric Ciao, ho appena aggiornato il mio post. Questo problema si verifica con python2.7 sul mio computer. – ROY

+0

davvero molto interessante @ROY, ho avuto 2 altri server quasi-indentical-to-this-server impostati e hanno funzionato perfettamente bene – ericn

20

qualcuno potrebbe trovare utile. È possibile inserire le impostazioni locali nel file .bashrc, che di solito si trovano nella home directory.
Basta aggiungere questo comando in .bashrc:
export LC_ALL=C
quindi digitare source .bashrc
Ora non c'è bisogno di chiamare questo comando manualmente ogni volta, quando si collega via ssh, per esempio.

16

Eseguire il seguente comando (che funzionerà):

export LC_ALL="en_US.UTF-8" 
export LC_CTYPE="en_US.UTF-8" 
sudo dpkg-reconfigure locales 
0

Mentre è possibile impostare l'impostazione internazionale esportando una variabile env, si dovrà fare che ogni volta che si avvia una sessione. L'impostazione di un locale in questo modo si risolve il problema in modo permanente:

sudo apt-get install apt-transport-https locales sudo wget 
sudo locale-gen en_US.UTF-8 
sudo echo "LANG=en_US.UTF-8" > /etc/default/locale 
0

Ho lo stesso problema, e "export LC_ALL=c"non ha lavorato per me,
Prova export LC_ALL="en_US.UTF-8" (che funzionerà).