Beachten Sie, dass von Homebrew installiertes Vim nicht mit dem Python 3.8-Fehler startet

TL;DR:

Ich habe es behoben, indem ich die Umgebungsvariable "LC_CTYPE" auf "ja_JP.UTF-8" gesetzt habe.

Umfrage

Wenn ich vim starte, stürzt es mit dem folgenden Fehler ab.

% vim
Fatal Python error: config_get_locale_encoding: failed to get the locale encoding: nl_langinfo(CODESET) failed
Python runtime state: preinitialized

Eine Suche in der Fehlermeldung hat einen Thread im Python-Bug-Tracker gefunden. https://bugs.python.org/issue39397

Auf einen Fehler beim Festlegen des Gebietsschemas wurde hingewiesen. Es wird auch empfohlen, die Umgebungsvariable "LC_CTYPE" zu entfernen. Der Reporter selbst scheint das Problem durch Entfernen der Umgebungsvariablen "LANG" gelöst zu haben.

Überprüfen Sie Ihre Umgebung.

% locale
LANG="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_CTYPE="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_ALL=

% echo $LANG
ja_JP.UTF-8

% env | grep '^LC_ALL=' #nicht definiert
% env | grep '^LC_CTYPE=' #nicht definiert

Die Umgebungsvariable LANG wird gesetzt. Die Umgebungsvariable LC_CTYPE ist nicht gesetzt, daher setzt der Befehl locale die Gebietsschemaeinstellung LC_CTYPE auf ja_JP.UTF-8.

Ich möchte die Einstellung der Umgebungsvariablen "LANG" in meiner Umgebung nicht ändern. Suchen Sie daher nach einer anderen Lösung.

Hier habe ich die Bedeutung von "nl_langinfo (CODESET)" untersucht. Dies scheint der Ort zu sein, an dem der Fehler aufgetreten ist. https://linuxjm.osdn.jp/html/LDP_man-pages/man3/nl_langinfo.3.html

Die Funktion nl_langinfo () bietet eine flexiblere Möglichkeit, auf Gebietsschemainformationen zuzugreifen als localeconv (3). Sie können einzelne oder zusätzliche Elemente der Gebietsschema-Kategorie abfragen. … CODESET (LC_CTYPE) Gibt eine Zeichenfolge zurück, die den im ausgewählten Gebietsschema verwendeten Zeichenkodierungsnamen angibt.

"nl_langinfo (CODESET)" scheint mit der Gebietsschemaeinstellung "LC_CTYPE" in Zusammenhang zu stehen. Sein Wert sollte gleich dem Wert der Umgebungsvariablen "LC_CTYPE" sein (für die Umgebungsvariable "LC_ALL", wenn sie nicht definiert ist, oder für die Umgebungsvariable "LANG", wenn sie ebenfalls nicht definiert ist). In meiner Umgebung sollte es "ja_JP.UTF-8" sein, was dem Wert der Umgebungsvariablen "LANG" entspricht, aber es scheint, dass die Erfassung nicht erfolgreich ist.

Versuchen Sie, die Umgebungsvariable "LC_CTYPE" auf "ja_JP.UTF-8" zu setzen.

% export LC_CTYPE=ja_JP.UTF-8
% vim

Jetzt startet Vim ohne Probleme.

Umgebung

Vim

% brew info vim
vim: stable 8.2.0654 (bottled), HEAD
Vi 'workalike' with many additional features
https://www.vim.org/
Conflicts with:
  ex-vi (because vim and ex-vi both install bin/ex and bin/view)
  macvim (because vim and macvim both install vi* binaries)
/usr/local/Cellar/vim/8.2.0654 (1,888 files, 32.6MB) *
  Poured from bottle on 2020-05-02 at 10:16:41
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/vim.rb
==> Dependencies
Required: gettext ✔, lua ✔, perl ✔, [email protected] ✔, ruby ✔

% grep '^Plug ' .vimrc
Plug 'Shougo/deoplete.nvim' " |deoplete_nvim|
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'

Das Plugin deoplete.nvim hängt von Python 3 ab. Es sieht so aus, als ob dieses Plug-In beim Versuch, Python 3 zu laden, abstürzt.

Python

% brew info [email protected]
[email protected]: stable 3.8.2 (bottled) [keg-only]
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/[email protected]/3.8.2 (4,196 files, 64MB)
  Poured from bottle on 2020-03-16 at 14:48:28
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/[email protected]

macOS

% sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.3
BuildVersion:   19D76

Recommended Posts

Beachten Sie, dass von Homebrew installiertes Vim nicht mit dem Python 3.8-Fehler startet
[Hinweis] Eine Geschichte über Anaconda und VScode, die Probleme mit dem Python-Importfehler haben
Starten Sie die numerische Berechnung mit Python (mit Homebrew und Pip).
[Hinweis] Betreiben Sie MongoDB mit Python
Formatieren Sie json mit Vim (mit Python)
Richten Sie mit Homebrew eine moderne Python-Umgebung ein
(Hinweis) Seien Sie vorsichtig mit Python Argparse
[Hinweis] Hallo Weltausgabe mit Python
Verwalten Sie jede Python-Version mit Homebrew
Wenn matplotlib nicht mit python2.7 funktioniert
Erstellen Sie Vim mit MinGW. (+ lua, + python)
Fehler und Lösung bei der Installation von Python3 mit Homebrew auf einem Mac (Catalina 10.15)
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Hinweise beim Erstellen einer Umgebung mit Python
Starten Sie Python
Hinweis: Python
[Persönlicher Hinweis] Scraping von Webseiten in Python3
Versuch, SQLite3 mit Python zu handhaben [Hinweis]
Was tun, wenn der Server nicht mit dem Runserver python manage.py startet?
Python-Notiz
Veröffentlichen Sie Ihre eigene Python-Bibliothek auf Homebrew
Homebrew-Fehler
Fehler beim Installieren eines Moduls mit Python pip
[Hinweis] Exportieren Sie das HTML der Site mit Python.
Schreiben wir FizzBuzz mit einem Fehler: Python-Version
pyenv funktioniert nicht mit tcl-tk, das von homebrew installiert wurde.
Starten Sie mit Docker einen einfachen Python-Webserver
[Hinweis] Erstellen Sie mit Python eine einzeilige Zeitzonenklasse
Ich wollte Python 3.4.3 mit Homebrew + pyenv installieren
Ermöglichen Sie vim quickfix, zu Python-Fehlermeldungen zu springen
Hinweis zum Formatieren von Zahlen mit der Python-Formatierungsfunktion
Installieren Sie vim7.3 (+ python2.4) von der Quelle (kompatibel mit Gundo.vim)
Installieren Sie Python 3 unter MacOS Catalina (nur mit Homebrew)
Python-Skript zum Abrufen von Notizinformationen mit REAPER
Python lernen note_002
Hinweis: Python-Dekorator
FizzBuzz in Python3
Python-Programmierhinweis
Scraping mit Python
[Python] Lernnotiz 1
Scraping mit Python
Python mit Go
Python lernen note_004
Twilio mit Python
In Python integrieren
Starten Sie Python
Python-Schnellstart
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
[Python] Beginne zu lernen
Python beginnt mit ()
mit Syntax (Python)
Python lernen note_003
Vim mit Atom
Bingo mit Python
Zundokokiyoshi mit Python
[Hinweis] openCV + Python
Python-Anfängernotiz
Excel mit Python
Mikrocomputer mit Python