ข้อผิดพลาด Pelican 3.3 pelican-quickstart“ ValueError: ไม่ทราบตำแหน่งที่ตั้ง: 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 X Mavericks


มีปัญหาเดียวกันในขณะที่ใช้ kivy ใน mavericks
Ciasto piekarz

คำตอบ:


456

คุณอาจจะลองวิธีการแก้ปัญหาที่โพสต์ที่นี่หรือที่นี่ โดยทั่วไปเพิ่มบางบรรทัดใน ~ / .bash_profile ของคุณ:

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

มีรายงานบั๊กที่ค้างอยู่ที่เกี่ยวข้องกับปัญหานี้ ดูเหมือนว่า Python ทำให้สมมติฐานบางอย่างเกี่ยวกับรูปแบบของชื่อสถานที่ที่ไม่ถูกต้องในระดับสากล การตั้งค่า vars ของสภาพแวดล้อมเหล่านี้อย่างชัดเจนนั้นเป็นเพียงวิธีแก้ปัญหาสำหรับข้อผิดพลาดนั้น

[แก้ไข:]เนื่องจาก @asmeurer ชี้ให้เห็นอย่างถูกต้องการแก้ไขข้างต้นถือว่าเป็นภาษาอังกฤษและสหรัฐอเมริกาคุณควรเลือกสถานที่ที่คุณต้องการจากรายการที่ได้รับจากlocale -a(โดยทั่วไปจะเป็นที่สิ้นสุดUTF-8)


ฉันมีออกจากระบบ / เข้าสู่ระบบพีซี ขอบคุณสำหรับทุกอย่าง.
Jose Carlos Ramos Carmenates

8
สิ่งนี้แก้ไขปัญหาให้ฉันด้วย anaconda บน MAC OSX ใน fish fish set -x LC_ALL en_US.UTF-8 set -x LANGen_US.UTF-8
andershqst

2
มันใช้งานได้ แต่ทุกคนสามารถอธิบายได้ว่าทำไมเราควรทำ
jblixr

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 ทำงานได้และฉันเชื่อว่าเราควรพูดถึงว่าหากคุณใช้บางอย่างเช่น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

ฉันโพสต์คำตอบของฉันใหม่จากคำถามนี้ที่นี่เนื่องจากมันถูกทำเครื่องหมายว่าเป็นคำซ้ำของคำถามนี้และคำตอบที่ได้รับการยอมรับสำหรับคำถามนี้ผิดไปหลายประการ

นี่เป็นข้อบกพร่องในแอป Terminal X ที่แสดงเฉพาะในบางพื้นที่ (การรวมกันของประเทศ / ภาษา) เปิด Terminal ใน / Applications / Utilities และยกเลิกการทำเครื่องหมายที่ช่อง“ ตั้งค่าตัวแปรสภาพแวดล้อมของโลแคลเมื่อเริ่มต้น”

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งนี้จะทำให้LANGตัวแปรสภาพแวดล้อมของคุณว่างเปล่า นี่อาจทำให้เทอร์มินัลใช้การตั้งค่าที่ไม่ถูกต้องสำหรับสถานที่ของคุณ คำสั่ง locale ใน Terminal จะบอกคุณว่าการตั้งค่าใดที่ใช้ หากต้องการใช้ภาษาที่ถูกต้องให้เพิ่มบรรทัดลงในโปรไฟล์ทุบตีของคุณ (โดยทั่วไป~/.profile)

export LANG=your-lang

แทนที่your-langด้วยตัวระบุตำแหน่งกระทำการที่ถูกต้องสำหรับภาษาของคุณ คำสั่งlocale -aจะแสดงตัวระบุทั้งหมดให้คุณ en_US.UTF-8ตัวอย่างเช่นรหัสภาษาสำหรับภาษาอังกฤษสหรัฐ โลแคลจะมีผลต่อการแปลที่ใช้เมื่อมีและวิธีจัดรูปแบบวันที่สกุลเงินและทศนิยม

หมายเหตุรูปภาพและเนื้อหานี้นำมาจากhttp://conda.pydata.org/docs/troubleshooting.html#unknown-locale (ฉันเป็นผู้เขียนต้นฉบับของหน้านั้นด้วย)


2

วิธีการแก้ปัญหาที่กล่าวถึงในที่นี้ไม่ได้ผลสำหรับฉันที่ใช้งานโครงการ python 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ในไฟล์ app.yaml ของฉัน:

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

และนั่นแก้ไขข้อผิดพลาด


1

ด้วยเหตุผลบางอย่างฉันก็ต้องการ:

export LC_CTYPE=en_US.UTF-8

ด้วยเหตุผลบางอย่างคุณได้รับคำตอบที่ฉันต้องการ ... มันเหมือน 2 ชั่วโมง ขอบคุณ!
Kiwad
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.