মারাত্মক পাইথন ত্রুটি: পাই_ইনিটায়ালাইজ করা: লোকেল এনকোডিং পেতে অক্ষম… সিনট্যাক্স এরর: অবৈধ সিনট্যাক্স বাতিল (কোর ডাম্পড)


16

আমি চালিয়ে anaconda ইনস্টল করেছি

bash Anaconda-2.2.0-Linux-x86_64.sh

আমার উবুন্টু 14.04 সিস্টেমে কমান্ড, যা সফলভাবে ইনস্টল হয়েছে, এর পরে আমাকে আমার নতুন /home/username/anaconda/bin$ PATH পরিবেশ পরিবর্তনশীল রফতানি করতে বলা হয়েছিল ।

এটি করার পরে, আমি আইডিই'র সাথে অ্যানাকোন্ডার সমস্ত বৈশিষ্ট্য এবং পাশাপাশি কন্ডদা ভিত্তিক সমস্ত কমান্ড সফলভাবে ব্যবহার করতে সক্ষম হয়েছি।

পরের বার আমি আমার সিস্টেমটি বুট করার সময়, প্রতিটি মিস-টাইপ করা কমান্ডটি এ

Fatal Python error: Py_Initialize: Unable to get the locale encoding
  File "/usr/local/lib/python2.7/encodings/__init__.py", line 123
    raise CodecRegistryError,\
                            ^
SyntaxError: invalid syntax
Aborted (core dumped)

ত্রুটি. ( pythonনির্দিষ্ট ব্যতীত সমস্ত কমান্ড )

কয়েকটি স্ট্যাকএক্সচেঞ্জ এবং অ্যাসুবুন্টু পোস্ট অনুসরণ করার পরে এবং আমার $PYTHONPATHসেট করা হয়েছে তা লক্ষ্য করেও usr/local/lib/python2.7, আমি চেষ্টা করেছি

export PYTHONPATH=$PYTHONPATH:/home/username/anaconda/lib/python2.7

তবে তাতে কোন লাভ হয়নি।

এটি আমার নিজের দ্বারা সমস্যাটি সমাধান করার জন্য প্যাকেজ অপসারণ এবং পুনরায় ইনস্টল এবং অবশ্যই অনেকগুলি আপডেট এবং আপগ্রেড করেছিল of

conda info -a আয়:

CIO_TEST: <not set>
CONDA_DEFAULT_ENV: <not set>
CONDA_ENVS_PATH: <not set>
LD_LIBRARY_PATH: <not set>
PATH: /home/username/anaconda/bin:/home/username/Scala-sbt/sbt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/bin:/usr/local/java/jdk1.8.0_20/bin
PYTHONHOME: <not set>
PYTHONPATH: /usr/local/lib/python2.7:/home/username/anaconda/bin/python

আদেশ

which python

আয়

/home/username/anaconda/bin/python

এবং

echo "$PATH"

আয়

/home/username/anaconda/bin:/home/username/Scala-sbt/sbt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/bin:/usr/local/java/jdk1.8.0_20/bin

আমি জানি যে আমি পথের ভেরিয়েবলগুলি যেভাবে সেট করেছি তার সাথে এটি করার একটি উপায়, বিশেষত ~/.bashrcযার মধ্যে অ্যানাকোন্ডা স্বয়ংক্রিয়ভাবে আমার / হোম / ব্যবহারকারীর নাম / অ্যানাকোন্ডা / বিন ফোল্ডারটি ভেরিয়েলেটে চাপিয়েছিল $PATH(আমি প্রথমে সরিয়ে দেওয়ার পরে এটি অ্যানাকোন্ডার দ্বিতীয় ইনস্টলেশন চলাকালীন ঘটেছিল) )।

আমি ~/.profileবা অন্য কোনও পরিবেশের পরিবর্তনশীল পরিবর্তন করেছি ~/.bashrc


~/.bashrcপুনঃসূচনা করার আগে আমি আমার সাথে রফতানি $ পাইথনপথ লাইন যুক্ত করেছি ।

অ্যানাকোন্ডার সমস্ত বৈশিষ্ট্যই এখন কাজ করে, যদিও Fatal Python error: Py_Initialize: Unable to get the locale encodingবেশিরভাগ ভুল টাইপ করা কমান্ডের জন্য সাধারণ অজানা কমান্ড ত্রুটির পরিবর্তে একই ত্রুটিটি প্রদর্শিত হয়।

আমি এটি অনুসন্ধান করেই চলব এবং আমার উত্তরটি সম্পাদনা করব (বা বিদ্যমান উত্তরগুলি উল্লেখ করুন, যদি হয় তবেই) কেন এটি ঘটে তা জানতে পেরে।

উত্তর:


11

আমি পাইথনপথ আনসেট করার পরামর্শ দেব। এটি সাধারণত প্রয়োজন হয় না, এবং এটি অন্য পাইথন থেকে একটি পাইথন লোড জিনিস তৈরি করে জিনিসগুলিকে এই জাতীয় ভাঙ্গন সৃষ্টি করে (এই ক্ষেত্রে, সিস্টেমের পাইথন 3 এটি পাইথন 2 এর জন্য লিখিত কিছু লোড করার চেষ্টা করছে বলে মনে হচ্ছে)।


3
দেরী জবাবের জন্য আন্তরিক ক্ষমা, স্যার। পাইথনপথটি আনসেট করে, আপনি কি প্রতিবার ম্যানুয়ালি এটি স্টার্টআপে সেট আপ করতে চান? অ্যানাকোন্ডা বর্তমানে পাইথন ২.7.১০ চালায় এবং আমি পাইথন ৩ ইনস্টল করি নি, তবে এই ত্রুটিটি কেন প্রদর্শিত হবে? আমি যে কারণে জিজ্ঞাসা করছি তা হ'ল ব্যবহারকারীর সাইট ডায়ারের জন্য কন্ডার তথ্য পিঠনপথ ভেরিয়েবল হিসাবে নির্দিষ্ট করে PYTHONPATH: /home/usrnme/anaconda/lib/python2.7:/usr/local/lib/python2.7। আমি যদি পাইথোনপাথ: / হোম / ইউএসএনএম / এ্যানাকোন্ডা .. আমার ~ / .Bashrc থেকে লাইনটি সরিয়ে ফেলতে পারি তবে ত্রুটিটি এখনও অবিরত থাকবে এবং আমি আবার সেট না করা পর্যন্ত অ্যানাকোন্ডার কোনও বৈশিষ্ট্যই কাজ করবে না।
সমীরজাচ

3

আমি গত কয়েক দিন একই ধরণের সমস্যা পেয়েছি, সুতরাং বাশ কীভাবে "কমান্ডটি খুঁজে পায় না" তার পরিচালনা করে তা আমি এটির পিছনে খুঁজে পেয়েছি। উবুন্টু 14.04 (এবং লিনাক্স মিন্ট 17, যা আমি 14.04 স্ক্রিপ্ট ব্যবহার করি), /etc/bash.bashrc এর নিম্নলিখিত ফাংশন রয়েছে:

if [ -x /usr/lib/command-not-found ]; then
    function command_not_found_handle {
        # check because c-n-f could've been removed in the meantime
        if [ -x /usr/lib/command-not-found ]; then
            /usr/bin/python /usr/lib/command-not-found -- $1
            return $?
        else
           return 127
        fi
    }
fi

যাইহোক, / usr / lib / কমান্ড-পাওয়া-পাওয়া পাইথন 3 এর জন্য পুনরায় লেখা হয়েছে। এটি /etc/bash.bashrc কমান্ডটি এতে পরিচালনা করে:

if sys.version < '3':                                                       
    # We might end up being executed with Python 2 due to an old            
    # /etc/bash.bashrc.                                                     
    import os                                                               
    if "COMMAND_NOT_FOUND_FORCE_PYTHON2" not in os.environ:                 
        os.execvp("python3", [sys.argv[0]] + sys.argv)

এটি সরাসরি পথ না দিয়ে পাথ থেকে "পাইথন 3" কল করে। এটি সংশোধন করার জন্য, / usr / lib / কমান্ড-পাওয়া না-র 22 লাইনটি পরিবর্তন করা উচিত

os.execvp("python3", [sys.argv[0]] + sys.argv)

প্রতি

os.execv("/usr/bin/python3", [sys.argv[0]] + sys.argv)

এটি আনাকোন্ডার চেয়ে উবুন্টুর সাথে একটি বাগ হিসাবে উপস্থিত হবে। এটি পরে বিতরণে প্রদর্শিত হয় কিনা তা পরীক্ষা করে দেখব will


1

স্ট্যান্ডার্ড লোকেশনগুলিতে পাইথন 3 ইনস্টল করার পরে এবং এটি ব্যবহারের জন্য আমার সুডোর দরকার বুঝতে পেরে, আমি স্থানীয়ভাবে এটি আমার হোম ডিরেক্টরিতে ইনস্টল করেছিলাম:

python3 -m venv env_py3
source env_py3/bin/activate

তবে আরও ত্রুটি ছিল। অ্যাডাব্লুএস এর অ্যামাজন লিনাক্স উদাহরণে কেবল পাইথনপথটি আনসেট করা আমার পক্ষে দুর্দান্ত কাজ করেছে।


1

আমার সমস্যাটি কিছুটা আলাদা ছিল: একজন ব্যবহারকারী হিসাবে আমি চালাতে পারি python, তবে অন্য একজন ব্যবহারকারী হিসাবে, না (আমি ওপি হিসাবে একই ত্রুটি পেয়েছি)। অবশেষে, আমি জানতে পেরেছিলাম যে /usr/lib/python3.5 এর অনুমতি এবং মালিকানা স্ক্রু হয়েছে। এর কারণ হ'ল আমি পুনরাবৃত্তভাবে ভার্চুয়ালেনভের উপর অনুমতি এবং মালিকানা সেট করেছিলাম যা সিএমলিংক লক্ষ্যগুলি (টার্গেটিন / ইউএসআর / লিবি / পাইথন ৩.৫ ) সংশোধন করে শেষ হয়েছিল ।

টিপ: strace pythonপাইথন স্টার্টআপের সময় কী চলছে তা বের করার জন্য ব্যবহার করুন । আমি যখন ব্যবহৃত strace, আমি পরিষ্কারভাবে দেখতে পারে PERMISSION_DENIED উপর /usr/lib/python3.5



-3

উইন্ডোজগুলিতে আমার একই সমস্যা ছিল - আমি পাইথনহোম সিস্টেমের ভেরিয়েবলটি মুছে ফেলেছি। আমি সমাধানটি ইংরেজী অনুবাদ করার চেষ্টা করব। আমার কম্পিউটার> বৈশিষ্ট্য> উন্নত সিস্টেম সেটিংস> পরিবেশের ভেরিয়েবলগুলি, ভেরিয়েবলটি পাইথনহোমটি সন্ধান করুন এবং এটি মুছুন।

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