একাধিক অজগর সংস্করণ পরিচালনা করার সঠিক উপায় কী?


21

পাইথন ২.6 সহ একটি মেশিন ডিফল্ট পাইথন হিসাবে ইনস্টল করেছি। তারপরে, আমি পাইথন ২.7 ইনস্টল করেছি এবং নতুন ইনস্টলেশনটিতে ম্যানুয়ালি / ইউএসআর / বিন / পাইথনকে একটি সিমিলিংক হিসাবে তৈরি করেছি।

তারপরে, আমি কমান্ড-না-পাওয়া নিয়ে সমস্যায় পড়েছি । আমি এটি পুনরায় ইনস্টল করার চেষ্টা করছি:

sudo apt-get remove command-not-found

এবং আমি এই ত্রুটি পেয়েছি:

/usr/bin/python does not match the
python default version. It must be
reset to point to python2.6

তবে আমি সত্যই পাইথন ২.7 ডিফল্ট হতে চাই। আমি কীভাবে এই জগাখিচুড়ি ঠিক করব?

উত্তর:


16

কোনও ওএসে ডিফল্ট পাইথন (বা পার্ল ইত্যাদি) পরিবর্তন করা আসলেই খারাপ ধারণা। এই দোভাষীটি আসলে ওএসেরই একটি অংশ এবং অন্যান্য ওএস উপাদানগুলিও থাকতে পারে যা দোভাষীর সেই সংস্করণের সাথে কাজ করার জন্য বিশেষভাবে লেখা থাকে।

উদাহরণস্বরূপ রেডহাট ইয়াম সরঞ্জামে যা সিস্টেম সফ্টওয়্যার আপডেটগুলি করে তা একটি অজগর অ্যাপ্লিকেশন। আপনি সত্যিই এটি ভাঙ্গতে চান না। এই ধরনের অ্যাপ্লিকেশনগুলি নির্দিষ্ট, সম্ভবত অ-স্ট্যান্ডার্ড, পাইথন মডিউলগুলি ইনস্টল করা হচ্ছে যা আপনার ইনস্টল করা সংস্করণটিতে নাও থাকতে পারে depend উবুন্টুর উপর উদাহরণস্বরূপ আমি বিশ্বাস করি পাইথনে লিখিত কিছু অন্তর্নির্মিত ওএস সরঞ্জামগুলি স্টর্ম নামে একটি ওআরএম ব্যবহার করে যা পাইথন স্ট্যান্ডার্ড লাইব্রেরির অংশ নয়। আপনার পরিষ্কার পাইথন ২. 2. ইনস্টলটিতে স্টর্ম মডিউলটির নির্দিষ্ট প্রত্যাশিত সংস্করণটি ইনস্টল করা আছে? এটির ঝড়ের কোনও সংস্করণ রয়েছে কি? কোন? তারপরে আপনি আপনার OS এর কিছু অংশ সরিয়ে ফেলেছেন।

এটি করার সঠিক উপায় হ'ল পাইথনের আপনার পছন্দসই সংস্করণটি ইনস্টল করুন এবং আপনার .bash_profile, পাথ এবং এগুলি সেট আপ করে এটি ব্যবহার করার জন্য আপনার ব্যবহারকারীর অ্যাকাউন্টটি সেট আপ করুন। আপনি পাইথনের জন্য ভার্চুয়ালেনভ মডিউলটিও দেখতে চাইতে পারেন।


1
আমার পথ এখানে গুগল। যদি আমি এই স্ট্যাকের প্রতিলিপি থাকতাম কেন? কারণ প্রস্তাবিত পদ্ধতিটি কেবল "আপনার পছন্দের অজগরটির সংস্করণ ইনস্টল করুন" বলে। সিস্টেম অজগর না করে কীভাবে এটি করা হয়?
jez

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

8

আমি কীভাবে এই জগাখিচুড়ি ঠিক করব?

পুনরায় ইনস্টল করা ছাড়া আর কিছুই নয় python। এটি আপনার পরিবর্তনকে পূর্বাবস্থায় ফিরিয়ে আনবে (সিমিলিংক)।

কেন আপনি এটি ডিফল্ট হিসাবে চান? প্রতিবার যখন আপনার এটি প্রয়োজন হবে, আপনার (এক্সিকিউটেবল) স্ক্রিপ্টগুলির শুরুতে কেবল (শেবাং) ব্যবহার করুন python2.7বা অন্তর্ভুক্ত করুন #!/usr/bin/python2.7

যদি আপনি python2.7সিস্টেম-ব্যাপী ডিফল্ট হিসাবে জোর দিয়ে থাকেন , তবে উবুন্টুর পরবর্তী সংস্করণটি ব্যবহার করুন (বর্তমানে এটি উবুন্টু ১১.০৪, কোডানড নেটি)) এটি সেই সংস্করণটিকে ডিফল্ট হিসাবে ব্যবহার করে।

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


আমি ভেবেছিলাম যে একবার আমি আপগ্রেড করার পরে এটি ডিফল্ট পাইথন ইনস্টলেশন পরিবর্তন করা কেবল যুক্তিসঙ্গত। আমি এটি ডিফল্ট হিসাবে চাই কারণ আমি নতুন অজগরের সাথে ... ডিফল্ট হিসাবে কাজ করতে চাই। আমি যখন pythonবাশ থেকে টাইপ করি তখন আমি নতুন অজগর পেতে চাই। আমি যা করেছি তার চেয়ে ভাল করার উপায় কি আর নেই?
ripper234

কেবলমাত্র লক্ষণীয় - আমি পাই না যে পাইথন ২.7 ইনস্টল করেছি সেভাবে কোনও ভুল ছিল। কেবলমাত্র "অপ্রচলিত" পদক্ষেপটি সিমিলিংক পরিবর্তন করছিল যা আমি ভেবেছিলাম এটিকে ডিফল্ট হিসাবে সেট করার উপযুক্ত উপায় । একটি ভাল উপায় আছে কি?
ripper234

2
@ রিপার: আমার ধারণা আমি এই থ্রেডটিতে কিছুটা দেরি করে আসছি। যেমন শেপাপাং বলেছেন pythonউবুন্টুতে থাকা প্যাকেজটি সিস্টেম সংস্করণ নির্ধারণ করে। এখন, আপনার ইনস্টলেশনটি কাস্টমাইজ করা সম্ভব তাই পাইথন প্যাকেজ ইত্যাদি তৈরি করে পাইথন ২.7 ডিফল্ট হয়, তবে যদি তাই হয় তবে আপনি কার্যকরভাবে উবুন্টুর পরিবর্তে আপনার পাইথন ইনস্টলেশন রক্ষণাবেক্ষণকারী হয়ে উঠবেন এবং আপনাকে কীভাবে পাইথন শিখতে হবে ডেবিয়ান / উবুন্টুতে পরিচালিত হয়। মনে রাখবেন যে সিস্টেমের অন্যান্য পাইথন প্যাকেজগুলি ডিফল্ট হিসাবে ২.6 এর সাথে কাজ করার জন্য কনফিগার করা হয়েছে, সুতরাং, অন্য কিছু বাদে, ভাঙ্গনের ফলে হতে পারে।
ফাহিম মিঠা

1
@ শেপাপাং: ভাল সারসংক্ষেপ!
ফাহিম মিঠা

12
@ রিপার 234: কোনও কিছু পরিবর্তন করবেন না /usr/bin, এটি আপনার বিতরণের জন্য সংরক্ষিত। পরিবর্তে, এর সাথে /usr/local/bin/pythonএকটি প্রতীকী লিঙ্ক তৈরি করুন python2.7। তারপরে স্ক্রিপ্টগুলি #!/usr/bin/env python(প্রস্তাবিত প্রতিমা) ব্যবহার করার পাশাপাশি pythonকমান্ড লাইনে টাইপ করার পরে পাইথন ২. 2. চালানো হবে। বিতরণ থেকে পাইথন চায় এমন বিতরণ থেকে প্রাপ্ত স্ক্রিপ্টগুলি কল রাখতে পারে #!/usr/bin/python
গিলস 13-22

2

দাবি অস্বীকার: আমি কেবল ওভারফ্লো স্ট্যাক করার জন্য এই একই উত্তর পোস্ট করেছি:

/programming/2812520/pip-dealing-with-multiple-python-versions/50319252

সমস্যাটি আমার এখানে দেওয়া। পাইথন 3 এর জন্য কাজ করে। প্রধান বৈশিষ্ট্যগুলি হ'ল:

  • প্রতিটি পাইথন সংস্করণ উত্স থেকে সংকলিত হয়
  • সমস্ত সংস্করণ স্থানীয়ভাবে ইনস্টল করা হয়
  • কোনওভাবেই আপনার সিস্টেমের ডিফল্ট পাইথন ইনস্টলেশনটিকে ম্যাঙ্গাল করে না
  • প্রতিটি পাইথন সংস্করণ ভ্যুচুয়ালেনভের সাথে বিচ্ছিন্ন

নিম্নরূপ পদক্ষেপ:

  1. যদি আপনার আরও কয়েকটি অতিরিক্ত পাইথন সংস্করণ অন্য কোনও উপায়ে ইনস্টল করা থাকে তবে সেগুলি থেকে মুক্তি পান, উদাহরণস্বরূপ, $ HOME / .local / lib / python3.x ইত্যাদি সরান (বিশ্বব্যাপী ইনস্টল হওয়াগুলিও )। যদিও আপনার সিস্টেমের ডিফল্ট অজগর 3 সংস্করণটি স্পর্শ করবেন না।

  2. নিম্নলিখিত ডিরেক্টরি কাঠামোর অধীনে বিভিন্ন অজগর সংস্করণগুলির জন্য উত্স ডাউনলোড করুন:

    $HOME/
        python_versions/ : download Python-*.tgz packages here and "tar xvf" them.  You'll get directories like this:
          Python-3.4.8/
          Python-3.6.5/
          Python-3.x.y/
          ...
  3. প্রতিটি "পাইথন -3.ক্সি /" ডিরেক্টরিতে নিম্নলিখিতগুলি করুন ( কোনও পদক্ষেপে "সুডো" ব্যবহার করবেন না !):

    mkdir root
    ./configure --prefix=$PWD/root 
    make -j 2
    make install
    virtualenv --no-site-packages -p root/bin/python3.x env
  4. "পাইথন_ভারশন /" এ এই জাতীয় ফাইল তৈরি করুন:

    env_python3x.bash:
    
    #!/bin/bash
    echo "type deactivate to exit"
    source $HOME/python_versions/Python-3.x.y/env/bin/activate
  5. এখন, আপনি যে কোনও সময় পাইথন 3.x বেছে নিতে চান, করুন

    source $HOME/python_versions/env_python3x.bash

    ভার্চুয়ালেনভ প্রবেশ করতে

  6. ভার্চুয়ালেনভে থাকাকালীন আপনার পছন্দসই পাইথন প্যাকেজগুলি ইনস্টল করুন

    pip install --upgrade package_name
  7. ভার্চুয়ালেনভ এবং পাইথন সংস্করণ থেকে বেরিয়ে আসার জন্য কেবল "নিষ্ক্রিয়" টাইপ করুন


0

আমরা ম্যাক এবং উবুন্টুকে একাধিক অজগর বিতরণ করেছি এবং এখানে আমার প্রস্তাবনা রয়েছে।

  1. অজগরটিকে সিস্টেমটি ছেড়ে দিন: এটি কখনও ব্যবহার করবেন না।

  2. আপনার যদি কেবলমাত্র একটি প্রাথমিক অজগর বিতরণ প্রয়োজন হয়, অন্তঃপ্রকাশ থেকে ক্যানোপি ডাউনলোড এবং ইনস্টল করুন । এটি ইনস্টল হয়ে গেলে, "আমার সিস্টেম অজগর হিসাবে সেট করুন" নির্বাচন করুন এবং তারপরে আপনি ক্যানোপির জিইউআই প্যাকেজ ম্যানেজার থেকে প্যাকেজ ইনস্টল করতে পারেন।

    • গাছের আচ্ছাদন বা চাঁদোয়া সাথে বাক্সের compaitble বাইরে pip, আপনি প্যাকেজগুলি ইনস্টল করতে দেয় PyPi প্যাকেজ ম্যানেজার কমান্ড (যেমন pip install python-twitter)
  3. যদি আপনি ভার্চুয়াল পরিবেশ ব্যবহার করার পরিকল্পনা করেন (যেমন আপনি পাইথন প্রোগ্রামগুলি বিকাশ করছেন এবং তাদের মধ্যে একটি সহজ পদ্ধতির সাথে প্রত্যেকের জন্য একটি নিবেদিত পরিষ্কার পাইথন পরিবেশ চান), তবে আমি ভার্চুয়াল পরিবেশ ব্যবস্থাপনার সরঞ্জামটির কারণে ক্যানোপির উপরে অ্যানাকোনডাকে সুপারিশ করব । এটি আপনাকে দেবে

0

pyenv

https://github.com/pyenv/pyenv

পাইএনভ আপনাকে একক ব্যবহারকারীর জন্য সুডো ছাড়াই একাধিক পাইথন সংস্করণ পরিচালনা করতে দেয়, অনেকটা নোড.জেএস এনভিএম এবং রুবি আরভিএম এর মতো

পাইএনভ ইনস্টল করুন:

curl https://pyenv.run | bash

তারপরে আপনার যুক্ত করুন .bashrc:

export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

পাইথনের সংস্করণটি ইনস্টল করতে সন্ধান করুন:

pyenv install --list

আপনি চাইলে অজগর সংস্করণটি ইনস্টল করুন:

# Increase the chances that the build will have all dependencies.
# https://github.com/pyenv/pyenv/wiki/Common-build-problems
sudo apt build-dep python3
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
  libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
  xz-utils tk-dev libffi-dev liblzma-dev python-openssl git

# Build and install a Python version from source.
pyenv install 3.8.0

পাওয়া পাইথন সংস্করণ তালিকা:

pyenv versions

আমরা এখন আছে:

* system (set by /home/cirsan01/.pyenv/version)
  3.8.0

একটি পৃথক পাইথন সংস্করণ নির্বাচন করুন:

pyenv global 3.8.0
python --version
python3 --version

উভয় আউটপুট:

Python 3.8.0

আমরা এখন প্যাকেজগুলি সাধারণভাবে ইনস্টল এবং ব্যবহার করতে এগিয়ে যেতে পারি:

pip install cowsay
python -c 'import cowsay; cowsay.tux("Python is fun")'
cowsay 'hello'

আমরা নিশ্চিত করতে পারি যে সবকিছু পরিষ্কারভাবে আমাদের পরিষ্কার পরিবেশে ইনস্টল করা আছে:

python -c 'import cowsay; print(cowsay.__file__)'
which cowsay

প্রতি প্রকল্পের ব্যবহার

পূর্ববর্তী বিভাগে, আমরা দেখেছি কীভাবে একটি বিশ্বব্যাপী সেটআপে পাইয়েনভ ব্যবহার করতে হয়।

তবে, আপনি সাধারণত যা চান তা হ'ল প্রতি প্রকল্পের ভিত্তিতে একটি নির্দিষ্ট অজগর এবং প্যাকেজ সংস্করণ সেট করা। এটি কিভাবে এটি করতে হয়।

প্রথমে আপনার কাঙ্ক্ষিত পাইথন সংস্করণটি পূর্বের মতো ইনস্টল করুন।

তারপরে, আপনার প্রকল্প ডিরেক্টরিটির ভিতরে থেকে, এটি দিয়ে কাঙ্ক্ষিত অজগর সংস্করণটি সেট করুন:

pyenv local 3.8.0

যা .python-versionসংস্করণ স্ট্রিং সমন্বিত একটি ফাইল তৈরি করে ।

এবং এখন আসুন কেবল আমাদের প্রকল্পের জন্য স্থানীয়ভাবে একটি প্যাকেজ ইনস্টল করুন: টোডো: দেখে মনে করার মতো কোনও দুর্দান্ত উপায় নেই: /programming/30407446/pyenv-choose-virtualenv-directory/59267972#59267972

এখন, যখন কেউ আপনার প্রকল্পটি ব্যবহার করতে চায়, তারা তা করবে:

pyenv local

পাইথন সংস্করণটি সঠিকটিকে সেট করে।

সম্পর্কিত থ্রেড:

উবুন্টু 18.04, pyenv 1.2.15 এ পরীক্ষিত।

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