पेलिकन 3.3 पेलिकन-क्विकस्टार्ट त्रुटि "मान: अज्ञात स्थान: UTF-8"


154

जब मैं pelican3.3 का उपयोग करने की कोशिश कर रहा था, मैंने "pelican-quickstart" की सराहना की, कुछ त्रुटियों को दिखाया।

ये त्रुटियां हैं:

(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

मेरा OS OS X Mavericks है।


कावेरी का उपयोग करते समय एक ही समस्या थी, मैवरिक्स पर
काइस्टो पाइर्ज़

जवाबों:


456

आप यहां या यहां पोस्ट किए गए समाधान की कोशिश कर सकते हैं । मूल रूप से, अपने ~ / .bash_profile में कुछ पंक्तियाँ जोड़ें:

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

इस समस्या से संबंधित एक उत्कृष्ट बग रिपोर्ट है । ऐसा प्रतीत होता है कि पायथन स्थानीय नामों के प्रारूप के बारे में कुछ धारणाएं बनाता है जो सार्वभौमिक रूप से मान्य नहीं हैं। स्पष्ट रूप से इन पर्यावरण वैर को स्थापित करना मूल रूप से उस बग के लिए केवल एक समाधान है।

[संपादित करें] जैसा कि @asmeurer सही ढंग से बताते हैं, उपरोक्त फिक्स अंग्रेजी और अमेरिका को मानता है कि आपको वास्तव में दी गई सूची locale -a(आमतौर पर समाप्त होने वाली UTF-8) से अपना पसंदीदा स्थान चुनना चाहिए ।


मैंने पीसी को लॉगआउट / लॉगिन किया था। सबको धन्यवाद।
जोस कार्लोस रामोस ने कार्तिके

8
इसने मेरे लिए मछली के खोल में मैक ओएसएक्स पर एनाकोंडा के साथ समस्या को हल किया। सेट -x LC_ALL en_US.UTF-8 सेट -x LANGen_US.UTF-8
andershqst

2
यह काम किया लेकिन क्या कोई समझा सकता है कि हमें ऐसा क्यों करना चाहिए?
जाब्लिक्सर

6
इसे और अधिक आसानी से करने के लिए यहां एक-लाइनर है:echo -e "export LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8" >> ~/.bashrc && source ~/.bashrc
वाल्ड्रिएस

2
यह फिक्स केवल तभी सही है जब आप अंग्रेजी बोलते हैं और यूएस में रहते हैं (जो आमतौर पर इस मुद्दे को देखने वाले लोगों के लिए नहीं है)। वास्तविक फिक्स LANG अपने लोकेल के लिए सही स्ट्रिंग पर सेट करना है (आप उन सभी के साथ सूचीबद्ध कर सकते हैं locale -a), आम तौर पर जो समाप्त होता है उसका उपयोग करके UTF-8
asmeurer

9

Gerrat का जवाब काम करता है, और मेरा मानना है कि हम उल्लेख करना चाहिए कि अगर आप इस तरह somthing का उपयोग zsh, आप लाइनों को जोड़ने चाहिए ~/.zshrcबजाय ~/.bash_profileया~/.bash_rc


9

ऊपर के जवाब जल्दी महान थे! लेकिन मेरा मानना ​​है कि मेरे जैसे आलसी लोग किसी अन्य लॉगिन उपयोगकर्ता को बदलते समय वैश्विक वातावरण को बदलना चाहते हैं। इसलिए हमें फ़ाइल को बदलने की आवश्यकता है:

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

और फिर निम्न फ़ाइलों में दो लाइन जोड़ें

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

याद रखें कि उनमें से एक को याद न करें, यह मेरे लिए सिर्फ $ LANG या $ LC_ALL का काम नहीं करता है। उसके बाद पर्यावरण को सक्रिय करने के लिए कमांड चलाएं।

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

फिर से, मेरे जैसे आलसी लोग एक लाइन कमांड में खत्म कर सकते हैं।

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

3

मैं इस प्रश्न से अपने उत्तर को यहाँ प्रस्तुत कर रहा हूँ , क्योंकि इसे इस एक के डुप्लिकेट के रूप में चिह्नित किया गया था, और इस प्रश्न पर स्वीकृत उत्तर कई मायनों में गलत है।

यह ओएस एक्स टर्मिनल ऐप में एक बग है जो केवल कुछ स्थानों (देश / भाषा संयोजनों) में दिखाई देता है। / एप्लिकेशन / यूटिलिटीज में टर्मिनल खोलें और "स्टार्टअप पर स्थानीय वातावरण चर सेट करें" बॉक्स को अनचेक करें।

यहां छवि विवरण दर्ज करें

इससे आपका LANGवातावरण चर खाली हो जाएगा। यह आपके स्थान के लिए गलत सेटिंग्स के लिए टर्मिनल उपयोग का कारण हो सकता है। टर्मिनल में लोकल कमांड आपको बताएगा कि कौन सी सेटिंग्स का उपयोग किया जाता है। सही भाषा का उपयोग करने के लिए, अपने bash प्रोफ़ाइल में एक पंक्ति जोड़ें (आमतौर पर ~/.profile)

export LANG=your-lang

बदलें your-langअपनी भाषा के लिए सही स्थान विनिर्देशक साथ। कमांड locale -aआपको सभी विनिर्देशक दिखाएगा। उदाहरण के लिए, अमेरिकी अंग्रेजी के लिए भाषा कोड हैen_US.UTF-8 । उपलब्ध होने पर अनुवादों का उपयोग किया जाता है, और यह भी बताया जाता है कि दिनांक, मुद्राओं और दशमलवों को कैसे स्वरूपित किया जाता है।

ध्यान दें, यह चित्र और सामग्री http://conda.pydata.org/docs/troublesourcing.html#unknown-locale (मैं उस पृष्ठ का मूल लेखक भी हूं) से ली गई थी।


2

यहाँ वर्णित किसी भी समाधान ने मेरे लिए एक स्थानीय ऐप इंजन वातावरण में अजगर 3.7 परियोजना चलाने का काम नहीं किया।

हालाँकि मैं कमांड लाइन के माध्यम से लोकेल को ठीक कर सकता था:

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

एप्लिकेशन इंजन वातावरण में वह स्थान नहीं मिल सका:

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

इसलिए मुझे स्पष्ट रूप env_variablesसे अपने ऐप में सेट करना था। फाइल फ़ाइल:

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

और उस बग को हल कर दिया।


1

किसी कारण से मुझे भी जरूरत थी:

export LC_CTYPE=en_US.UTF-8

किसी कारण से, आपको वह उत्तर मिला जिसकी मुझे तलाश थी ... यह 2 घंटे की तरह है। धन्यवाद!
कीवाड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.