পাইপ ইনস্টল করুন - স্থানীয় করুন। ত্রুটি: অসমর্থিত লোকেল সেটিং


232

সম্পূর্ণ স্ট্যাকট্রেস:

  ~ pip install virtualenv
Traceback (most recent call last):
  File "/usr/bin/pip", line 11, in <module>
    sys.exit(main())
  File "/usr/lib/python3.4/site-packages/pip/__init__.py", line 215, in main
    locale.setlocale(locale.LC_ALL, '')
  File "/usr/lib64/python3.4/locale.py", line 592, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting

একই সার্ভারে, আমি সাফল্যের pip install virtualenvসাথে পাইথন ২.7.x.

এখন, আমি ব্যবহার করে পাইথন 3.4 ইনস্টল করেছি curl https://bootstrap.pypa.io/get-pip.py | python3.4

  ~ pip --version
pip 8.1.1 from /usr/lib/python3.4/site-packages (python 3.4)

pip uninstall virtualenv একই ত্রুটি নিক্ষেপ


2
আপনি পড়তে হয়নি এই এখনো?
idjaw

হ্যাঁ আমার কাছে আইডজো, নোড এটি আমার ক্ষেত্রে একটি খালি স্ট্রিং, এটি আপনি যে ভুল লোকেলের দিকে লক্ষ্য করেছেন তার থেকে আলাদা
এরিকন

হ্যাঁ, আমি এটা লক্ষ্য করেছি। আপনি কি পিকেজি-পুনরায় কনফিগার করার চেষ্টা করেছেন?
idjaw

আমার সার্ভারটি সেন্টোস, উবুন্টু @ আইডিজেউ নয়, আমি পরীক্ষা করে দেখেছি এবং স্থানীয় এটির সাথে কোনও ভুল নেই বলে মনে হচ্ছেLANG=en_GB.utf8
এরিকন

উত্তর:


616

মূল কারণটি হ'ল: আপনার পরিবেশ পরিবর্তনশীল LC_ALLকোনওরকম অনুপস্থিত বা অবৈধ

সংক্ষিপ্ত উত্তর-

শুধু নিম্নলিখিত কমান্ড চালান:

$ export LC_ALL=C

আপনি যদি নতুন টার্মিনাল উইন্ডোতে ত্রুটি পেতে থাকেন তবে এটি আপনার .bashrcফাইলের নীচে যুক্ত করুন।

দীর্ঘ উত্তর-

এখানে আমার localeসেটিংস:

$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C

Python2.7

    $ uname -a
    Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU/Linux
    $ python --version
    Python 2.7.9
    $ pip --version
    pip 8.1.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
    $ unset LC_ALL
    $ pip install virtualenv
    Traceback (most recent call last):
      File "/usr/local/bin/pip", line 11, in <module>
        sys.exit(main())
      File "/usr/local/lib/python2.7/dist-packages/pip/__init__.py", line 215, in main
        locale.setlocale(locale.LC_ALL, '')
      File "/usr/lib/python2.7/locale.py", line 579, in setlocale
        return _setlocale(category, locale)
    locale.Error: unsupported locale setting
    $ export LC_ALL=C
    $ pip install virtualenv
    Requirement already satisfied (use --upgrade to upgrade): virtualenv in /usr/local/lib/python2.7/dist-packages

5
সুতরাং এটি ঠিক তখন পরিবেশের পরিবর্তনশীল স্থাপনের বিষয়? আপনি কি জানেন কেন আমি এর আগে কখনও এর মুখোমুখি হই নি? এই মানটি কি স্বয়ংক্রিয়ভাবে সেট করা উচিত নয়?
এরিকন

@ অ্যারিক হাই, আমি কেবল আমার পোস্টটি আপডেট করছি। আমার কম্পিউটারে পাইথন 2.7 দিয়ে এই সমস্যাটি ঘটে।
ROY

সত্যিই @ আকর্ষণীয়, আমি খুব আকর্ষণীয়ভাবে এই সার্ভার সার্ভার স্থাপন করেছি এবং তারা পুরোপুরি
ঠিকঠাক

লেটেনক্রিপ-অটো ব্যবহার করে আমি এর মুখোমুখি হয়েছি এবং export LC_ALL=Cসহায়তা করেছি।
maniexx

10
আপনি যদি ভাবছেন তবে এর LC_ALL=Cঅর্থ, এখানে দেখুন
গ্যারেট

41

নিম্নলিখিত কমান্ডটি চালান (এটি কাজ করবে):

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

(-1) dpkg-reconfigureকমান্ডটি দেবিয়ান ভিত্তিক সিস্টেমে ব্যবহারের জন্য তৈরি। এই প্রশ্নটির সাথে ট্যাগ করা হয়েছে centos, একটি আরএইচইএল ডেরিভেটিভ যা ডিপিকেজি-র জন্য সমর্থন সরবরাহ করে না যদি আপনি epel-releaseসংগ্রহস্থল সক্ষম না করেন dpkg-develএবং & dpkg-devপ্যাকেজগুলি ইনস্টল করেন না । তারপরেও এটি কোনও আদর্শ সমাধান নয়।

30

কেউ এটি দরকারী মনে হতে পারে। আপনি সেই লোকেল সেটিংসটি .bashrc ফাইলে রাখতে পারেন, যা সাধারণত হোম ডিরেক্টরিতে থাকে।
কেবলমাত্র .bashrc এ এই কমান্ডটি যুক্ত করুন:
export LC_ALL=C
তারপরে source .bashrc
এখন টাইপ করুন যখন আপনি উদাহরণস্বরূপ ssh এর মাধ্যমে সংযোগ স্থাপন করেন, তখন প্রতিবার নিজেই এই কমান্ডটি কল করার দরকার নেই।


4

আপনি যখন এনভির ভেরিয়েবল রফতানি করে লোকেল সেট করতে পারেন, আপনি প্রতিবার সেশন শুরু করার সময় আপনাকে তা করতে হবে। এভাবে লোকেল সেট করা সমস্যার স্থায়ীভাবে সমাধান করবে:

sudo apt-get install locales
sudo locale-gen en_US.UTF-8
sudo echo "LANG=en_US.UTF-8" > /etc/default/locale

আমি কি ভুল বোঝাবুঝি করছি, বা আপনি sudoএকই লাইনে ব্যবহার করছেন যা আপনি এটি ইনস্টল করার চেষ্টা করছেন? sudo apt-get install ... sudo ...
সাইবারএড

2
@ সাইবারএড, আপনি ঠিক বলেছেন, আমি শিবিরের নির্ভরতা অপসারণের জন্য উদাহরণটি সম্পাদনা করেছি।
মার্কো লাভাগিনিনো

3

[এই উত্তরটি কেবল লিনাক্স প্ল্যাটফর্মেই লক্ষ্য]

আপনার প্রথম জিনিসটি জানা উচিত হ'ল লোকেলে কনফিগারেশন ফাইল অবস্থিত বেশিরভাগ পথ থেকে পাওয়া যেতে পারে localedef --help:

$ localedef --help | tail -n 5
System's directory for character maps : /usr/share/i18n/charmaps
                       repertoire maps: /usr/share/i18n/repertoiremaps
                       locale path    : /usr/lib/locale:/usr/share/i18n
For bug reporting instructions, please see:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>

শেষ দেখি /usr/share/i18n? আপনার xx_XX.UTF-8 কনফিগারেশন ফাইলটি এখানেই রয়েছে:

$ ls /usr/share/i18n/locales/zh_*
/usr/share/i18n/locales/zh_CN  /usr/share/i18n/locales/zh_HK  /usr/share/i18n/locales/zh_SG  /usr/share/i18n/locales/zh_TW

এখন কি ? আমাদের সেগুলি সংরক্ষণাগার বাইনারিগুলিতে সংকলন করা দরকার। উপায়গুলির মধ্যে একটি, যেমন ধরুন আমার কাছে আছে /usr/share/i18n/locales/en_LOVE, আমি এটি সংকলন তালিকায় যুক্ত করতে পারি, অর্থাৎ /etc/locale-genফাইল:

$ tail -1 /etc/locale.gen 
en_LOVE.UTF-8 UTF-8

এবং এটি দিয়ে বাইনারি সংকলন sudo locale-gen:

$ sudo locale-gen 
Generating locales (this might take a while)...
  en_AG.UTF-8... done
  en_AU.UTF-8... done
  en_BW.UTF-8... done
  ...
  en_LOVE.UTF-8... done
Generation complete.

আর এখন সিস্টেম ডিফল্ট লোকেল আকাঙ্ক্ষিত দিয়ে আপডেট LANG, LC_ALL... এই সঙ্গে ইত্যাদি update-locale:

sudo update-locale LANG=en_LOVE.UTF-8

update-localeপ্রকৃতপক্ষে এই /etc/default/localeফাইলটি আপডেট করার অর্থ যা সিস্টেমে সিস্টেমে পরিবেশগত ভেরিয়েবল সেটআপ করতে হবে:

$ head /etc/default/locale 
#  File generated by update-locale
LANG=en_LOVE.UTF-8
LC_NUMERIC="en_US.UTF-8"
...

তবে আমরা কার্যকর হতে পুনরায় বুট করতে চাই না, সুতরাং আমরা এটি বর্তমান শেল সেশনে পরিবেশ পরিবর্তনশীল হিসাবে উত্স করতে পারি:

$ . /etc/default/locale

কীভাবে sudo dpkg-reconfigure locales? আপনি যদি এটির চারপাশে খেলেন তবে আপনি এই কমান্ডটি মূলত উপরের পদক্ষেপগুলি সহজ করার জন্য GUI হিসাবে কাজ করবেন জানতে পারবেন, যেমন সম্পাদনা /etc/locale.gen-> sudo locale-gen->sudo update-locale LANG=en_LOVE.UTF-8

অজগরটির জন্য, যতক্ষণ না /etc/locale.genসেই লোকেল প্রার্থী থাকে এবং locale.genসংকলিত হয়, ততক্ষণ setlocale(category, locale)ছুড়ে ফেলে কাজ করা উচিত locale.Error: unsupoorted locale setting। আপনি না পরীক্ষা করতে সঠিক স্ট্রিং en_US.UTF-8/ en_US/....etcসেট করা setlocale()দেখে, /etc/locale.genuncomment ফাইল, এবং তারপর এবং এটি কম্পাইল যেমন ইচ্ছা। zh_CN GB2312এই ফাইলটিতে বিন্দুবিহীন অর্থ সঠিক স্ট্রিংটি zh_CNএবং zh_CN.GB2312


আমার অবস্থার জন্য, সংক্ষিপ্ত উত্তরটি হল: 1. সম্পাদনা করুন /etc/locale.gen, zh_CN.UTF-8লাইনটি সংঘাতহীন করুন ; ২ sudo locale-gen
স্নোঅনিয়ন



1

ত্রুটি বার্তা লোকেল সেটিংয়ের সাথে একটি সমস্যা নির্দেশ করে। অন্যান্য উত্তরের দ্বারা নির্দেশিত হিসাবে এটি ঠিক করতে আপনার নিজের লোকেলটি পরিবর্তন করতে হবে।

ম্যাক ওএস এক্স সিয়েরাতে আমি দেখতে পেলাম যে এটি করার সর্বোত্তম উপায়টি ~/bash_profileফাইলটি নিম্নরূপে সংশোধন করা ছিল :

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

এই পরিবর্তনটি আপনার বর্তমান ক্লায়েন্ট সেশনে তত্ক্ষণাত্ স্পষ্ট হবে না আপনি যদি ব্যবহার করে বাশ প্রোফাইলটি পুনরায় লোড না করেন: source ~/.bash_profile

এই উত্তরটির উত্তরগুলির খুব কাছাকাছি যে আমি অন্যান্য অ-অভিন্ন, নন-সদৃশ প্রশ্নগুলিতে পোস্ট করেছি (যেমন পাইপেনভের সাথে সম্পর্কিত নয়) তবে যা একই সমাধানের প্রয়োজন হয়।

মডারেটরের কাছে: শ্রদ্ধার সাথে; আমার আগের উত্তরটি এই কারণে মুছে ফেলা হয়েছে তবে আমি মনে করি এটি কিছুটা নির্বোধ ছিল কারণ সত্যই এই উত্তরটি যখনই প্রয়োগ হয় প্রায়শই যখনই ত্রুটিটি "লোকেলের সাথে সমস্যা" হয় ... তবে এখানে বিভিন্ন রকমের পরিস্থিতি, ভাষা এবং পরিবেশ যা ট্রিগার করতে পারে are ত্রুটি।

সুতরাং এ) প্রশ্নগুলিকে সদৃশ হিসাবে চিহ্নিত করার অর্থবোধ করে না এবং খ) উত্তরটি দর্জি করার কোনও অর্থ নেই কারণ সমাধান খুব সহজ, প্রতিটি ক্ষেত্রে একই রকম এবং অলঙ্করণ থেকে কোনও উপকার হয় না।


1

উবুন্টু:

$ sudo vi /etc/default/locale

ফাইলের শেষে নীচে সেটিংস যুক্ত করুন।

LC_ALL = en_US.UTF-8

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.