Pourquoi est-ce que j'obtiens l'erreur suivante en faisant cela en python:
>>> import locale
>>> print str( locale.getlocale() )
(None, None)
>>> locale.setlocale(locale.LC_ALL, 'de_DE')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/locale.py", line 531, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
Cela fonctionne également avec d'autres paramètres régionaux comme fr ou nl. J'utilise Ubuntu 11.04.
Mise à jour: Faire ce qui suit n'a rien donné:
dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = (unset)
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
de_DE
liste danslocale -a
? Sinon, vous devez l' installer .locale.setlocale(locale.LC_ALL, 'de_DE')
est faux. Vous en avez besoinlocale.setlocale(locale.LC_ALL, 'de_DE.utf8')
.locale.setlocale(locale.LC_ALL, locale.locale_aliases['de_DE'])
.Réponses:
Exécutez les commandes suivantes
Cela résoudra cela.
Assurez-vous de faire correspondre la
.UTF-8
pièce à la syntaxe réelle trouvée parlocale -a
exemple.utf8
sur certains systèmes.la source
export LC_ALL="en_US.UTF-8"
a échoué avec-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
ce qui a fonctionné:export LC_ALL=C
Selon ce lien , il a résolu en entrant cette commande:
la source
LC_ALL
à la valeur'C'
- mais pourquoi cela devrait-il fonctionner?Vous n'avez probablement pas de
de_DE
paramètres régionaux disponibles.Vous pouvez afficher une liste des paramètres régionaux disponibles avec la
locale -a
commande. Par exemple, sur ma machine:Notez que si vous souhaitez définir les paramètres régionaux sur
it_IT
vous devez également spécifier.utf8
:Pour installer une nouvelle locale, utilisez:
où
id
est le code de langue (extrait d' ici )Après avoir installé les paramètres régionaux, vous devez suivre les conseils de Julien Palard et reconfigurer les paramètres régionaux avec:
la source
L'une des réponses ci-dessus fournit la solution:
Le problème avec la solution ci-dessus est qu'elle doit être effectuée sur le shell Linux. Cependant, si vous fournissez votre code pour qu'il fonctionne sur la machine cliente, c'est une mauvaise approche. J'ai également essayé d'exécuter les commandes ci-dessus en utilisant os.system (), mais cela ne fonctionne toujours pas.
La solution qui a fonctionné pour moi est
la source
Une solution plus permanente serait de remplir les valeurs manquantes, dans la sortie affichée par la commande:
locale
La sortie de
locale
est:Pour remplir les valeurs manquantes, éditez ~ / .bashrc:
Ajoutez les lignes suivantes après la commande ci-dessus (supposons que vous vouliez que en_US.UTF-8 soit votre langue):
Si ce fichier est en lecture seule, vous devrez suivre les étapes mentionnées par The GeekyBoy . La réponse donnée par le Dr Beco dans Superuser contient des détails concernant la sauvegarde des fichiers en lecture seule.
Après avoir enregistré le fichier, procédez comme suit:
Maintenant, vous ne serez plus confronté au même problème.
la source
Si vous êtes sur un Debian (ou un fork Debian), vous pouvez ajouter des locales en utilisant:
la source
dpkg-reconfigure locales
menu vous propose- t- il un menu local comme celui-ci: vpser.net/uploads/2013/01/dpkg-reconfigure-locales-1.jpg ?Sur Arch Linux, j'ai pu résoudre ce problème en exécutant
sudo locale-gen
la source
Pour mémoire, j'ai eu ce même problème, mais aucune des solutions n'a fonctionné. J'avais mis à niveau mon ordinateur et migré mon PC. J'avais une langue anglaise et espagnole mixte:
Mais, sur ma nouvelle installation Debian, je viens de sélectionner l'anglais comme locale. Ce qui a finalement fonctionné était de reconfigurer le paquetage locales pour ajouter et générer de l'espagnol aussi.
la source
Ouvrez simplement le fichier .bashrc et ajoutez-le
puis tapez source .bashrc dans le terminal.
la source
Votre erreur indique clairement que vous essayez d'utiliser les paramètres régionaux quelque chose n'était pas là.
locale.Error: paramètre de locale non pris en charge
Pour vérifier le paramètre disponible, utilisez
locale -a
vous pouvez donc en utiliser un parmi,
pour
de_DE
Ce fichier peut être ajusté manuellement ou mis à jour à l'aide de l'outil, update-locale.
la source
locale
pour obtenir les paramètres régionaux utilisés. Tel que:/etc/locale-gen
fichier. Ne commentez pas ceux utiliséslocale-gen
pour générer des paramètres régionaux nouvellement ajoutésla source
À mon avis, la façon la plus simple de configurer les paramètres régionaux locaux en python {, 3} est:
Ensuite, les choses sensibles aux paramètres régionaux fonctionnent juste, si vous êtes sur une distribution Linux décente, et devraient également fonctionner sur les distributions binaires des autres systèmes d'exploitation (ou c'est un bogue à mon humble avis).
la source
Placez-le dans le
Dockerfile
dessus duENV
.la source
locale
dans le terminal, obtenez `LANG = en_US.UTF-8 et d'autres paramètres régionaux? stackoverflow.com/questions/36394101/…Cette erreur peut se produire si vous venez d'ajouter un nouvel environnement local. Vous devez redémarrer le shell interactif python (
quit(
) etpython
) pour y accéder.la source
Si j'étais vous, j'utiliserais BABEL: http://babel.pocoo.org/en/latest/index.html
J'ai eu le même problème ici en utilisant Docker, j'ai essayé chaque étape et je ne fonctionnais pas bien, obtenant toujours une erreur locale, j'ai donc décidé d'utiliser BABEL, et tout fonctionnait bien.
la source
En essayant d'obtenir que python crache des noms dans des paramètres régionaux spécifiques, j'ai atterri ici avec le même problème.
En cherchant la réponse, les choses sont devenues un peu mystiques, je trouve.
J'ai trouvé ce code python.
Et en effet
locale.setlocale(locale.LC_TIME, 'en_DK.UTF-8')
fonctionneEn utilisant des conseils ici, j'ai testé davantage pour voir ce qui est disponible en utilisant du code python
qui donne
Dont seulement ci-dessus fonctionne! Mais le
en_DK.UTF-8
n'est pas dans cette liste, bien que cela fonctionne!?!? Quoi?? Et la liste des paramètres régionaux générés par python contient beaucoup de combos de da et DK, que je recherche, mais encore une fois pas UTF-8 pour da / DK ...Je suis sur une distribution Point Linux (basée sur Debian), et ici
locale
dit entre autresLC_TIME="en_DK.UTF-8"
, que je connais fonctionne, mais pas les paramètres régionaux dont j'ai besoin.locale -a
ditDonc , je dois absolument installer d'autres paramètres régionaux , ce que j'ai fait en modifiant
/etc/locale.gen
, décommentez la ligne nécessaireda_DK.UTF-8 UTF-8
et exécutez la commandelocale-gen
Fonctionne maintenant
locale.setlocale(locale.LC_TIME, 'da_DK.UTF-8')
aussi, et je peux obtenir mes noms de jour et de mois localisés.Ma conclusion:
Python: locale.locale_alias n'est pas du tout utile pour trouver les locales disponibles !!!
Linux: Il est assez facile d'obtenir la liste des paramètres régionaux et d'installer de nouveaux paramètres régionaux. Beaucoup d'aide disponible.
Windows: J'ai enquêté un peu, mais rien de concluant. Il y a bien des messages conduisant à des réponses, mais je n'ai pas ressenti le besoin de les poursuivre.
la source
si je comprends bien, la principale source d'erreur ici est la syntaxe exacte du nom-local. D'autant plus qu'il semble différer entre les distributions. J'ai vu mentionné ici dans différentes réponses / commentaires:
Même si c'est évidemment la même chose pour un être humain, il n'en va pas de même pour votre algorithme déterministe standard.
Vous ferez donc probablement quelque chose dans le sens de:
la source
python recherche .UFT-8, mais vous avez probablement .utf8 essayez d'installer les packages .UFT-8 avec sudo dpkg-reconfigure locales
la source
tout d'abord, assurez-vous que le module linguistique est installé en procédant comme suit:
la source