Pelican 3.3 pelican-quickstart hatası “ValueError: bilinmeyen yerel ayar: UTF-8”


154

Pelican3.3 kullanmaya çalışırken, "pelican-quickstart" övgüsünü yazdım, bazı hatalar ortaya çıktı.

Bunlar hatalar:

(PelicanEnv)59-127-113-90:myblog Richo$ pelican-quickstart
Traceback (most recent call last):
  File "/Users/Richo/Dropbox/Github/PelicanEnv/bin/pelican-quickstart", line 9, in <module>
    load_entry_point('pelican==3.3', 'console_scripts', 'pelican-quickstart')()
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pkg_resources.py", line 378, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pkg_resources.py", line 2566, in load_entry_point
    return ep.load()
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pelican/__init__.py", line 16, in <module>
    from pelican.generators import (ArticlesGenerator, PagesGenerator,
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pelican/generators.py", line 20, in <module>
    from pelican.readers import Readers
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pelican/readers.py", line 11, in <module>
    import docutils.core
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/core.py", line 20, in <module>
    from docutils import frontend, io, utils, readers, writers
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/frontend.py", line 41, in <module>
    import docutils.utils
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/utils/__init__.py", line 20, in <module>
    import docutils.io
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/io.py", line 18, in <module>
    from docutils.utils.error_reporting import locale_encoding, ErrorString, ErrorOutput
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/utils/error_reporting.py", line 47, in <module>
    locale_encoding = locale.getlocale()[1] or locale.getdefaultlocale()[1]
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/locale.py", line 513, in getdefaultlocale
    return _parse_localename(localename)
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/locale.py", line 445, in _parse_localename
    raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8

İşletim sistemim OS X Mavericks.


kivy kullanırken aynı sorunu vardı, mavericks üzerinde
Ciasto piekarz

Yanıtlar:


456

Burada veya burada yayınlanan bir çözümü deneyebilirsiniz . Temel olarak, ~ / .bash_profile dosyanıza bazı satırlar ekleyin:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Bu sorunla ilgili olağanüstü bir hata raporu var . Görünüşe göre Python, evrensel olarak geçerli olmayan yerel ayar adlarının biçimi hakkında bazı varsayımlar yapıyor. Bu ortam değişkenlerini açıkça ayarlamak, temelde bu hata için bir çözümdür.

[Düzenle:] @asmeurer doğru olarak işaret ettiği gibi, yukarıdaki düzeltme İngilizce ve ABD varsayıyor gerçekten tarafından verilen listeden locale -a(genellikle biten bir UTF-8) tercih ettiğiniz yerel ayarı seçmelisiniz .


Oturumu kapattım / PC'ye giriş yaptım. Her şey için teşekkürler.
Jose Carlos Ramos Carmenates

8
Bu, benim için de balık kabuğundaki MAC OSX'teki anaconda ile sorunu çözdü. set -x LC_ALL tr_US.UTF-8 set -x LANGen_US.UTF-8
andershqst

2
İşe yaradı ama neden bunu yapmamız gerektiğini açıklayan var mı?
jblixr

6
İşte bunu daha rahat yapmak için bir astar:echo -e "export LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8" >> ~/.bashrc && source ~/.bashrc
waldyrious

2
Bu düzeltme yalnızca İngilizce konuşuyorsanız ve ABD'de yaşıyorsanız doğrudur (genellikle bu sorunu gören insanlar için geçerli değildir). Gerçek düzeltme, LANG yerel ayarınız için doğru dizeye ayarlamaktır (hepsini ile listeleyebilirsiniz locale -a), genellikle ile bitenleri kullanarak UTF-8.
asmeurer

9

Gerrat'ın cevabı işe yarıyor ve inanıyorum ki böyle bir şey kullanırsanız, veya yerine zshsatır eklemelisiniz ~/.zshrc.~/.bash_profile~/.bash_rc


9

Üst katta cevaplar hızlı harika! Ama inanıyorum ki benim gibi tembel insanlar, başka bir Giriş kullanıcısına geçerken bir daha asla değişmemesi durumunda küresel ortamı değiştirmek isterler. Bu yüzden dosyayı şu şekilde değiştirmemiz gerekiyor:

sudo vi /etc/profile or sudo vi /etc/bashrc

Ve sonra iki dosyayı aşağıdaki dosyalara ekleyin

export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"

Bunlardan birini kaçırmayın, benim için işe yaramaz sadece $ LANG veya $ LC_ALL. Bundan sonra ortamı etkinleştirme komutunu çalıştırın.

sudo source /etc/profile 
sudo source /etc/bashrc
source ~/.bash_profile 
source ~/.zshrc

Yine, benim gibi tembel insanlar bir satır komutuyla bitirebilirler.

echo -e "export LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8" >> ~/.bash_profile && source ~/.bash_profile

3

Bu sorunun cevabını burada tekrar ediyorum , çünkü bunun bir kopyası olarak işaretlendi ve bu soruya kabul edilen cevap birçok yönden yanlış.

Bu, OS X Terminal uygulamasında yalnızca belirli bölgelerde (ülke / dil kombinasyonları) görünen bir hatadır. / Applications / Utilities içindeki Terminal'i açın ve “Başlangıçta yerel ortam değişkenlerini ayarla” kutusunun işaretini kaldırın.

resim açıklamasını buraya girin

Bu, LANGortam değişkeninizi boş olarak ayarlar . Bu, terminal kullanımının yerel ayarınız için yanlış ayarlara neden olabilir. Terminal'deki yerel ayar komutu hangi ayarların kullanıldığını size söyleyecektir. Doğru dili kullanmak için bash profilinize bir satır ekleyin (genellikle ~/.profile)

export LANG=your-lang

Diliniz your-langiçin doğru yerel ayar belirteciyle değiştirin . Komut locale -asize tüm tanımlayıcıları gösterecektir. Örneğin, ABD İngilizcesi için dil kodu en_US.UTF-8. Yerel ayar, kullanılabilir olduğunda hangi çevirilerin kullanıldığını ve ayrıca tarihlerin, para birimlerinin ve ondalık sayıların nasıl biçimlendirileceğini etkiler.

Bu resim ve içeriğin http://conda.pydata.org/docs/tro Sorun.html#unknown-locale adresinden alındığını unutmayın (ayrıca bu sayfanın orijinal yazarıyım).


2

Burada bahsedilen çözümlerin hiçbiri benim için yerel bir uygulama motoru ortamında bir python 3.7 projesi yürütmüyordu.

Her ne kadar yerel komut satırı üzerinden gayet iyi alabilirsiniz:

python3 -c 'import locale; print(locale.getdefaultlocale());'
('en_US', 'UTF-8')  

Bu yerel ayar, uygulama motoru ortamında bulunamadı:

File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/locale.py", line 568, in getdefaultlocale
    return _parse_localename(localename)
File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/locale.py", line 495, in _parse_localename
    raise ValueError('unknown locale: %s' % localename)
ValueError: unknown locale: UTF-8

Bu yüzden açıkça env_variablesapp.yaml dosyasında ayarlamak zorunda kaldı :

env_variables:
  LC_ALL: "en_US:UTF_8"
  LC_CTYPE: "en_US:UTF_8"

Ve bu hatayı çözdü.


1

Nedense de ihtiyacım vardı:

export LC_CTYPE=en_US.UTF-8

Nedense aradığım cevabı aldın ... 2 saat gibiydi. Teşekkürler!
Kiwad
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.