কীভাবে 'পাইথন' প্রোগ্রাম কমান্ড পাইথন 3 চালায়?


331

pythonপ্রোগ্রাম কমান্ড executes পাইথন 2. পাইথন 3 ব্যবহার মৃত্যুদন্ড কার্যকর করা যেতে পারে python3কমান্ড। pythonকমান্ডটি ব্যবহার করে পাইথন 3 কীভাবে কার্যকর করা যায় ?


30
কেবলমাত্র একটি সতর্কতা: / usr / bin / পাইথন sylink 2.7 এর পরিবর্তে পাইথন 3 এ নির্দেশ করার চেষ্টা করবেন না। উবুন্টু রেপোতে উপলব্ধ অনেকগুলি প্রোগ্রামের জন্য / usr / bin / পাইথন পাইথন ২.x এর সাথে সামঞ্জস্যপূর্ণ হতে পারে require
আত্মার উত্স

1
আহ, এখন আপনি যা আপগ্রেড করেছেন তার অর্থ আমি পেয়েছি ... প্রকৃতপক্ষে উবুন্টু বিকাশকারীরা এতে কাজ করছেন: উইকি.উবন্টু.com/ পাইথন / 3 "উবুন্টু 14.04 এলটিএসের ডেস্কটপ সিডিতে কেবল পাইথন 3 রাখা এটি একটি মুক্তির লক্ষ্য It চিত্র। "
আত্মার উত্স

1
অন্য নোটে, যে কেউ এখানে আসছেন কারণ তারা পাইথন 3 কে তাদের ডিফল্ট তৈরি করার বিষয়ে শেখার চেষ্টা করছেন, পরিবর্তে ভার্চুয়াল পরিবেশ (উদাহরণস্বরূপ ভার্চুয়ালেনভ) বা পাত্রে (যেমন এলএক্সসি বা ডকার) গবেষণা করার ক্ষেত্রে এটি ব্যবহার করতে পারে।
কেভিন

1
শীর্ষে সোলসোর্সের সতর্কতার প্রসঙ্গে পিইপি 394 দেখুন যা পাইথন এক্সিকিউটেবলের সহাবস্থান জন্য নামকরণের কনভেনশনকে মানক করে এবং পাইথন প্রোগ্রামার এবং প্যাকেজ রক্ষণাবেক্ষণকারীরা (এবং করা উচিত) নির্ভর করে।
ডেভিড ফোরস্টার

2
@ Wjandrea, হ্যাঁ ভার্চুয়াল পরিবেশেও pythonঅর্থ হিসাবে রাখা উচিত python2। সিস্টেমের পাইথনটির আশেপাশে কাজ করার চেষ্টা না করে একটি অ্যাপ্লিকেশন নির্দিষ্ট পাইথন সংস্করণ রাখার উপায় হিসাবে আমার মন্তব্যটি বোঝানো হয়েছিল।
কেভিন

উত্তর:


370

একটি সহজ নিরাপদ উপায় হ'ল একটি উপাধি ব্যবহার করা। এটিকে ~/.bashrcবা ~/.bash_aliasesফাইলটিতে রাখুন :

alias python=python3

ফাইলটিতে উপরের যোগ করার পরে, চালান source ~/.bashrcবা source ~/.bash_aliases

উদাহরণ স্বরূপ:

$ python --version
Python 2.7.6
$ python3 --version
Python 3.4.3
$ alias python=python3
$ python --version
Python 3.4.3

উপনামটি ছড়িয়ে দিতে commandবিল্ট-ইন কমান্ডটি ব্যবহার করুন :

$ command python --version
Python 2.7.6

অন্যান্য নামটি হ'ল \কমান্ডের আগে ব্যবহার করা circum

$ \python --version 
Python 2.7.6

বর্তমান শেলটিতে উপন্যাসটি অক্ষম করতে unaliasবিল্ট-ইন কমান্ডটি ব্যবহার করুন :

$ unalias python
$ python --version
Python 2.7.6

1
সুতরাং কোন "আপগ্রেড" বিকল্প নেই .. ??
গিরি

4
আসলে আমি 2.7 মুছতে এবং এটি 3.3 দিয়ে প্রতিস্থাপন করতে চাই। আপাতত এটি একটি খারাপ ধারণা বলে মনে হচ্ছে ..
গিরি

35
+1 3.3 দিয়ে কাজ করতে সক্ষম হওয়ার জন্য 2.7 কে শুদ্ধ করার কোনও কারণ নেই। প্রচুর সফ্টওয়্যার এখনও 2.7 এর উপর নির্ভর করে; শুধু এটি প্রায় দীর্ঘায়িত রাখা।
don.joey

6
@begueradj একটি ওরফে একটি প্রতীকী লিঙ্ক থেকে সম্পূর্ণ পৃথক ।
রাদু রেডানু

1
সাবধানতার একটি শব্দ: এটি পাইথন ২.7 আশা করে এমন অন্যান্য স্ক্রিপ্টগুলি ভেঙে ফেলতে পারে।
কিমিক্লাস অক্টোব

85

[জুন ২০১]] স্থানান্তর সম্পর্কিত তথ্যের জন্য প্রস্তাবিত জায়গা হ'ল অফিশিয়াল উবুন্টু পাইথন পৃষ্ঠা।


থেকে উবুন্টু উইকি :

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

এর অর্থ কী নয় :

  • /usr/bin/pythonপাইথনকে নির্দেশ করবে ৩. না, এটি ঘটবে না ( PEP 394 অন্যথায় সমর্থন না করলে, যা ভবিষ্যতের জন্য সন্দেহজনক)। /usr/bin/pythonএবং /usr/bin/python2পাইথন ২.7 এ /usr/bin/python3নির্দেশ করবে এবং সর্বশেষ সমর্থিত পাইথন 3 সংস্করণে নির্দেশ করবে।

  • পাইথন 2 সংরক্ষণাগার থেকে সরানো হবে। না, এটি হতে যাচ্ছে নাপিইপি 373 2020 সাল পর্যন্ত আপস্ট্রিম বাগ ফিক্স রক্ষণাবেক্ষণ সহায়তা প্রদানের প্রতিশ্রুতি দিয়ে আমরা পাইথন ২. দীর্ঘসময় ধরে উবুন্টুতে সমর্থিত এবং উপলব্ধ থাকার প্রত্যাশা করি ।

অন্যান্য প্যাকেজ নির্ভরতার কারণে প্রতীকী লিঙ্কটি পরিবর্তন করার প্রস্তাব দেওয়া হয় না, তবে তারা "পাইথন 3 কে ডিফল্ট হিসাবে পছন্দসই পাইথন সংস্করণটিকে ডিস্ট্রোজে পরিণত করার জন্য চলমান প্রকল্পের লক্ষ্য রয়েছে"।


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

এলিয়াস উদাহরণ:

alias python=python3

অথবা

alias python='/usr/bin/python3'

স্ক্রিপ্টগুলিতে #!/usr/bin/env python3ক্রস-সামঞ্জস্যের মতো কিছু ব্যবহার করা উচিত ।

ব্যবহার envভার্চুয়াল পরিবেশের সঙ্গে মিশিয়ে ব্যবহারের জন্য চমৎকার।

দ্রষ্টব্য (@ ওজান্দ্রিয়া ধন্যবাদ): উপাধিগুলি ব্যাশ রানটাইমের অংশ, ব্যবহারকারীর পরিবেশ নয়। অতএব, সেগুলি শেবাং ( #!) এ উপলব্ধ নেই। আপনি যদি পাইথন = পাইথন 3 নামটি পছন্দ করেন তবে শাইবাং program.pyব্যতীত কিছু এলিয়াস অনুবাদককে অনুরোধ করে মৃত্যুদন্ড কার্যকর করা যেতে পারে python program.py। অ্যালাইজিং পাইথন 3 এর একাধিক সংস্করণ সহ 3.4 এবং 3.6 একসাথে সিস্টেমগুলির জন্যও কার্যকর হতে পারে।


1
এটি এখন পুরানো বলে মনে হচ্ছে: তারা জেনিয়ালে পাইথন 2 অপসারণের পরিকল্পনা করেছিল, তবে তা হয়নি।
অরেঞ্জডোগ

1
@ ওরেঞ্জডগ, আপডেটের জন্য ধন্যবাদ। হ্যাঁ, উইকি পৃষ্ঠার আমি উদাহৃত এখন হিসাবে আরো উন্নতি শুধুমাত্র পাইথন 3. নতুন পৃষ্ঠা থেকে সরানোর এই অগ্রগতি অনুসরণ করার জন্য গত দুই বছরে তৈরি করা হয়েছে কর্মকর্তা আউট-অফ-তারিখ, হিসাবে পতাকাঙ্কিত করা হয় উবুন্টু পাইথন পৃষ্ঠা
কেভিন

জেনিয়ালের পরিকল্পনা সম্পর্কিত "সর্বশেষ" পৃষ্ঠাটিও পুরানো।
অরেঞ্জডোগ

আমি এটি এতটা "পুরানো" হিসাবে বলব না যে "এটি সম্প্রতি আপডেট হয়নি।" এটি এখনও পোস্ট রাখার জন্য বর্তমান অবস্থান বলে মনে হচ্ছে। যাইহোক, এখানে মন্তব্যগুলিতে, আমি অন্য যে কোনও সাম্প্রতিক উত্সগুলি খুঁজে পেতে পারে তার প্রশংসা করব। আমার উত্তরে আরও উত্স যুক্ত করা, কেন কেবলমাত্র পরিবর্তন করতে হবে তা সম্পর্কে pythonরূপান্তর সম্পূর্ণ না হওয়া পর্যন্ত সত্যই প্রাসঙ্গিক নয়। তারপরেও, এটি কেবল একটি অ-ইস্যুতে পরিণত হতে পারে।
কেভিন

2
উপাধি বাশের অভ্যন্তরীণ, পরিবেশের অংশ নয়, তাই আপনাকে এখনও python3একটি শেবাং ব্যবহার করতে হবে , না python
wjandrea

28

আপডেট: পাইথন 2 এবং পাইথন 3 আদান-প্রদানযোগ্য নয় বলে এটি ভুল পদ্ধতি learned

আপনি কমান্ড লাইন সরঞ্জাম চেষ্টা করতে পারেন update-alternatives

$ sudo update-alternatives --config python

যদি আপনি "পাইথনের বিকল্প নেই" ত্রুটিটি পান তবে নীচের কমান্ডটি দিয়ে নিজেকে একটি বিকল্প সেট আপ করুন:

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

/usr/bin/python3সেই অনুযায়ী আপনার কাঙ্ক্ষিত অজগর সংস্করণটির পথ পরিবর্তন করুন ।


19
পাইথন 2 এবং পাইথন 3 বিকল্প নয়। এই উদ্দেশ্যে আপডেট-বিকল্প ব্যবহার করবেন না।
জবিন

তারা হয় না কেন? আপনারা কেউ দয়া করে ব্যাখ্যা করতে পারেন কেন update-alternativesপাইথনের জন্য উপযুক্ত নয়? এটি কি লেগ্যাসি.পিথন.আর.দেব / পেপস / পেপ-0394 এর কারণে ?
দিমিত্রি গ্রিগরিয়েভ

11
বিকল্পগুলি একই কার্যকারিতার জন্য বিভিন্ন বাস্তবায়ন। পাইথন 2 এবং পাইথন 3 একই কার্যকারিতা সরবরাহ করে না।
এলি

আপনি ম্যানুয়ালি পাইথন 3 এর অন্যান্য সংস্করণ (পিপিএ বা যাই হোক না কেন) ইনস্টল করলে আপনি এর মতো কিছু করতে পারেন। sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
ডেভিড বাউকুম

18.04.2 ভিএম এর জন্য আমার এটি করা দরকার যা পাইথন দিয়ে আসে না। ধন্যবাদ
ডার্ক স্টার 1

9

উবুন্টু এবং লিনাক্সের বাকী অংশগুলি এই বিষয়টির জন্য এখনও বেশিরভাগ অ্যাপ্লিকেশন এবং কমান্ডের জন্য পাইথন ২. on এর উপর নির্ভরশীল। যদি আপনি "পাইথন" এর ডিফল্ট রেফারেন্সটি পাইথন 3.x এ পরিবর্তন করেন তবে বেশ কয়েকটি পাইথন ফাংশন দৃser়তা ত্রুটি ছুঁড়ে দেওয়া শুরু করবে।

উদাহরণস্বরূপ, উবুন্টুতে, যদি আপনি সরাসরি ফাইলটি সম্পাদনা না করে এবং শেবাংকে "#! / Usr / bin / env python2.7 'তে রেফারেন্সে পরিবর্তন না করেন তবে' উঁকি'র জন্য 'পিপ' সঠিকভাবে চলবে না। আরএইচইএল (রেড হ্যাট এন্টারপ্রাইজ লিনাক্স) এর স্বাদ যেমন রেড হ্যাট, ফেডোরা এবং সেন্টোস-এ 'ইয়াম' কমান্ডটি পাইথন ২. 2.-এর উপর নির্ভরশীল।

এখানে আমার বক্তব্যটি হ'ল আপনি উল্লেখযোগ্য পরিমাণ কোড জোর ত্রুটি নিক্ষেপ করতে শুরু করবেন যাতে আপনি পাইথন ৩.x রেফারেন্সের জন্য টার্মিনালে 'পাইথন' টাইপ করতে পারেন।

আপনি টার্মিনালে 'পাইথন 3' কমান্ড এবং আপনার পাইথন 3.x ফাইলগুলিতে শেবাং '#! / Usr / bin / env python3' ব্যবহার করে আরও ভাল better


2

করা

cd ~
gedit .bash_aliases

তারপর হয় লিখুন

alias python=python3

অথবা

alias python='/usr/bin/python3'

ফাইলটি সংরক্ষণ করুন, টার্মিনালটি বন্ধ করুন এবং এটি আবার খুলুন।
লিংক


1

আপনি এর সাথে সিলেক /usr/bin/pythonকরতে পারেনpython3

sudo ln -s /usr/bin/python3 /usr/bin/python

এবং পাইথন 2 এবং পাইপ 2 এর সাথে নির্ভরতা হিসাবে ইনস্টল হওয়া থেকে রোধ করতে পারেন

sudo apt-mark hold python python-pip

আপনি কেন এটি করতে না চাইতে পারেন তার জন্য অন্যান্য উত্তরগুলি দেখুন। উবুন্টু 18.04+ পাইথন 2 এর সাথে আর আসে না, সুতরাং এটি খুব খারাপ হওয়া উচিত নয়।


2
সংক্রান্ত "উবুন্টু 18.04 আর পাইথন 2 দিয়ে আসে, তাই এটি খুব খারাপ করা উচিত হবে না।" , উবুন্টুতে (এমনকি এমন সংস্করণগুলিতেও পাইথন 2 ডিফল্টরূপে ইনস্টল করা নেই), একটি এক্সিকিউটেবল নামকটিকে pythonপাইথন 2 বলে ধরে নেওয়া হয়, যাতে এটি কিছু জিনিস ভাঙ্গতে পারে।
wjandrea

* python->/usr/bin/python
wjandrea

0
cat > /usr/local/bin/py
#!/bin/dash
python3 "$@"
<CTRL-D>

(যদি আপনি / ইউএসআর / স্থানীয় / বিনের লেখার অনুমতি পেয়ে থাকেন) তবে একইভাবে

cat > /usr/local/bin/pyi
#!/bin/dash
python3 -i "$@"
<CTRL-D>

তারপরে আপনি কেবল আপনার নির্বাচিত অজগরটির জন্য পাই (এবং # লাইনগুলিতে পাই ব্যবহার করুন) টাইপ করুন।


এটি একটি সিমলিংক ব্যবহার করা সহজ হবে না? sudo ln -s /usr/bin/python3 /usr/local/bin/py
wjandrea

0

আমি কেবল / usr / bin / পাইথন এবং / usr / বিন / পিপ সরানো খুব সহায়ক বলে মনে করি। এটি সমস্ত প্রোগ্রামকে "পাইথন 2" এবং "পাইথন 3" কমান্ডের উপর নির্ভর করতে বাধ্য করে।

যদিও কিছু alচ্ছিক এবং পুরানো প্যাকেজগুলি #!/usr/bin/pythonকাজের উপর নির্ভর করে , তবুও আমি অদ্ভুত এবং কখনও কখনও হার্ড-ডি-বাগের ভুলগুলি চালিয়ে যাওয়ার চেয়ে সেই প্রোগ্রামগুলিতে প্যাচ জমা দেব।


-1

আপনি update-alternativesসামঞ্জস্যতা সমস্যার কারণে বিভিন্ন সময়ে প্রয়োজন হতে পারে এমন বিভিন্ন প্রোগ্রামের বিভিন্ন সংস্করণ সরবরাহ করতে ব্যবহার করতে পারেন ।

উদাহরণস্বরূপ, gcc / g ++ এর বিভিন্ন সংস্করণ বজায় রাখার জন্য কীভাবে জিনিসগুলি সেট আপ করা যায় তার জন্য এই উত্তরটি একটি ভাল উদাহরণ।

পাইথন 2.7 এবং পাইথন 3.3 দিয়ে কেবল একই কাজ করুন


2
প্রারম্ভিক ব্যবহারকারীরা সহজেই লিঙ্কিত উত্তরটিকে অন্য কোনও পরিস্থিতিতে অভিযোজিত করতে পারবেন না। আগের উত্তরটি জমা দেওয়ার পাশাপাশি পাইথনের জন্য প্রয়োজনীয় পদক্ষেপগুলি ছড়িয়ে দেওয়া ভাল।
সেপ্টেম্বর

এখানে আমি ধাপে ধাপে সমাধান linuxconfig.org/…
woto 12'17

পাইথন 2 এবং 3 বিকল্প নয় - এমনকি বিভিন্ন ছোটখাটো সংস্করণও নয় ( যেমন )। এই পদ্ধতিটি জিনিসগুলিকে সহজেই ভাঙ্গতে পারে।
wjandrea

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