Pelican 3.3 lỗi pelican-quickstart Lỗi ValueError: không rõ miền địa phương: UTF-8 tựa


154

Khi tôi đang cố gắng sử dụng pelican3.3, tôi đã gõ "pelican-quickstart", một số lỗi xuất hiện.

Đây là những lỗi:

(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

HĐH của tôi là OS X Mavericks.


gặp vấn đề tương tự trong khi sử dụng kivy, trên mavericks
Ciasto piekarz 7/2/2015

Câu trả lời:


456

Bạn có thể thử một giải pháp được đăng ở đây hoặc ở đây . Về cơ bản, hãy thêm một số dòng vào ~ / .bash_profile của bạn:

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

Có một báo cáo lỗi nổi bật liên quan đến vấn đề này. Dường như Python đưa ra một số giả định về định dạng của tên miền địa phương không có giá trị chung. Hoàn toàn thiết lập các vars môi trường này về cơ bản chỉ là một cách giải quyết cho lỗi đó.

[Chỉnh sửa:] Như @asmeker chỉ ra chính xác, cách khắc phục ở trên giả định tiếng Anh và Hoa Kỳ Bạn thực sự nên chọn ngôn ngữ ưa thích của mình từ danh sách được cung cấp bởi locale -a(nói chung là kết thúc bằng UTF-8).


Tôi đã đăng xuất / đăng nhập máy tính. Cảm ơn vì tất cả.
Jose Carlos Ramos Carmenates 18/07/14

8
Điều này cũng giải quyết được vấn đề với tôi với Anaconda trên MAC OSX trong vỏ cá. đặt -x LC_ALL en_US.UTF-8 bộ -x LANGen_US.UTF-8
andershqst

2
Nó đã làm việc nhưng bất cứ ai có thể giải thích tại sao chúng ta nên làm điều đó?
jblixr

6
Đây là một lớp lót để thực hiện việc này thuận tiện hơn:echo -e "export LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8" >> ~/.bashrc && source ~/.bashrc
waldyrious

2
Khắc phục sự cố này chỉ đúng nếu bạn nói tiếng Anh và sống ở Hoa Kỳ (thường không phải là trường hợp cho những người nhìn thấy vấn đề này). Cách khắc phục thực sự là đặt thành LANG chuỗi chính xác cho miền địa phương của bạn (bạn có thể liệt kê tất cả chúng với locale -a), thường sử dụng chuỗi kết thúc bằng UTF-8.
asmeker

9

Câu trả lời của Gerrat hoạt động và tôi tin rằng chúng ta nên đề cập rằng nếu bạn sử dụng một cái gì đó như thế nào zsh, bạn nên thêm các dòng ~/.zshrcthay vì ~/.bash_profilehoặc~/.bash_rc


9

Tầng trên câu trả lời nhanh chóng tuyệt vời! Nhưng tôi tin rằng những người lười biếng như tôi muốn thay đổi môi trường toàn cầu trong trường hợp không bao giờ thay đổi nữa trong khi thay đổi thành người dùng Đăng nhập khác. Vì vậy, chúng ta cần thay đổi tập tin như:

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

Và sau đó thêm hai dòng trong các tập tin sau

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

Hãy nhớ đừng bỏ lỡ một trong số chúng, nó không hoạt động với tôi chỉ $ LANG hoặc $ LC_ALL. Sau đó chạy lệnh để kích hoạt môi trường.

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

Một lần nữa, những người lười biếng như tôi có thể hoàn thành trong một dòng lệnh.

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

3

Tôi đang đăng lại câu trả lời của mình từ câu hỏi này ở đây, vì nó được đánh dấu là bản sao của câu hỏi này và câu trả lời được chấp nhận cho câu hỏi này là sai theo nhiều cách.

Đây là một lỗi trong ứng dụng OS X Terminal chỉ hiển thị ở một số địa phương nhất định (kết hợp quốc gia / ngôn ngữ). Mở Terminal trong / Ứng dụng / Tiện ích và bỏ chọn hộp Cài đặt biến môi trường miền địa phương khi khởi động.

nhập mô tả hình ảnh ở đây

Điều này sẽ đặt LANGbiến môi trường của bạn là trống rỗng. Điều này có thể gây ra việc sử dụng thiết bị đầu cuối để cài đặt không chính xác cho ngôn ngữ của bạn. Lệnh miền địa phương trong Terminal sẽ cho bạn biết cài đặt nào được sử dụng. Để sử dụng ngôn ngữ chính xác, hãy thêm một dòng vào hồ sơ bash của bạn (thông thường ~/.profile)

export LANG=your-lang

Thay thế your-langbằng bộ xác định ngôn ngữ chính xác cho ngôn ngữ của bạn. Lệnh locale -asẽ hiển thị cho bạn tất cả các specifier. Ví dụ, mã ngôn ngữ cho tiếng Anh Mỹ là en_US.UTF-8. Bản địa ảnh hưởng đến những bản dịch được sử dụng khi chúng có sẵn và cả cách thức ngày, tiền tệ và số thập phân được định dạng.

Lưu ý, hình ảnh và nội dung này được lấy từ http://conda.pydata.org/docs/troubledhoot.html#unknown-locale (Tôi cũng là tác giả gốc của trang đó).


2

Không có giải pháp nào được đề cập ở đây làm việc cho tôi khi chạy dự án python 3.7 trong môi trường công cụ ứng dụng cục bộ.

Mặc dù tôi có thể truy xuất miền địa phương thông qua dòng lệnh tốt:

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

Không thể tìm thấy ngôn ngữ đó trong môi trường công cụ ứng dụng:

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

Vì vậy, tôi đã phải thiết lập rõ ràng env_variablestrong tệp app.yaml của mình:

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

Và điều đó đã giải quyết được lỗi.


1

Vì một số lý do tôi cũng cần:

export LC_CTYPE=en_US.UTF-8

Vì một số lý do, bạn đã nhận được câu trả lời mà tôi đang tìm kiếm ... nó đã diễn ra trong 2 giờ. Cảm ơn!
Kiwad
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.