2016-03-29 14 views
6

Właśnie utworzyłem pudełko Vagrant z ubuntu/trusty32. Włóczęga Provisioner, w czasie tworzenia skrzynki, zrobił, co następuje:Nie można zainstalować pakietów pip ze względu na locale.error wewnątrz Ubuntu Vagrant Box

  • pobrane archiwum tar pyton źródło virtualenv użyciu wget
  • rozpakowany archiwum źródłowe virtualenv korzystając tar zxvf ./virtualenv.tar.gz
  • stworzył virtualenv nazywa venv użyciu python ./virtualenv/virtualenv.py ./venv
  • pozyskał nowo utworzony venv z source ./venv/bin/activate
  • zainstalował kilka pakietów pip z pip install django, pip install mysqlclient itp. W środowisku wirtualnym.

Wszystko to działało dobrze i doskonały - wykonywane przez Vagrant Provisioner gdy pole włóczęga był tworzony po raz pierwszy.

Jednak później zalogowałem się do ssh i próbowałem zainstalować ipython przez pip.

$ vagrant ssh 
[email protected]:~$ source venv/bin/activate 
(venv) [email protected]:~$ pip install ipython 
Traceback (most recent call last): 
    File "/home/vagrant/venv/bin/pip", line 11, in <module> 
    sys.exit(main()) 
    File "/home/vagrant/venv/local/lib/python2.7/site-packages/pip/__init__.py", line 215, in main 
    locale.setlocale(locale.LC_ALL, '') 
    File "/home/vagrant/venv/lib/python2.7/locale.py", line 579, in setlocale 
    return _setlocale(category, locale) 
locale.Error: unsupported locale setting 
(venv) [email protected]:~$ 

Uwaga: to jest świeży nowy włóczęga pole Ubuntu/trusty32 po wyjęciu z pudełka.

Istnieje kilka pytań o SO związanych z błędem lokalizacji, ale śledzenie ich nie wykazało żadnej pomocy w tym scenariuszu.

To nie ma sensu, że to wszystko działało perfekcyjnie podczas tworzenia skrzynki Vagrant/czas przepis, ale potem nie działa, gdy próbuje to samo ręcznie.

Odpowiedz

15

Najpierw sprawdź swoją aktualną konfigurację locale, wstawiając locale w linii poleceń.

Powinieneś zobaczyć coś podobnego do:

locale: Cannot set LC_CTYPE to default locale: No such file or directory 
LANG=C 
LC_CTYPE=utf8 

Ustaw poprawnym locale w zmiennej LC_CTYPE uruchamiając następujące polecenia:

export LANGUAGE=en_US.UTF-8 
export LANG=en_US.UTF-8 
export LC_ALL=en_US.UTF-8 
export LC_CTYPE="en_US.UTF-8" 
locale-gen en_US.UTF-8 
sudo dpkg-reconfigure locales 

PS. en_US.UTF-8 jest tu używany, ale jeśli chcesz sprawdzić wszystkie dostępne ustawienia regionalne w systemie, uruchom polecenie locale -a

To powinno rozwiązać problem.

+0

Świetnie ... to działało ... co się stało ??? Czy jest jakaś różnica między zawijaniem 'en_US.UTF-8' wewnątrz cudzysłowów i niepakowaniem' en_US.UTF-8' wewnątrz cudzysłowu? –

+0

Uwaga .. Muszę to zrobić za każdym razem, gdy loguję się do powłoki komputera. Jak zrobić to na stałe? –

+0

Możesz dodać polecenia w '.bashrc' iw ten sposób zostanie wykonany za każdym razem, gdy zalogujesz się do swojej powłoki. A także nie zapomnij oznaczyć tego jako odpowiedzi, tak aby każdy, kto miał problem, mógł to uznać za odpowiedź :) –

Powiązane problemy