আমি কীভাবে ব্রু ইনস্টলড পাইথনটি ডিফল্ট পাইথন হিসাবে ব্যবহার করব?


187

আমি ম্যাক ওএস এক্স 10.6.2 এ হোমব্রিউতে (ফিঙ্ক এবং ম্যাকপোর্ট ব্যবহারের পরে) স্যুইচ করার চেষ্টা করি। আমি পাইথন ২.7 ইনস্টল করেছি

brew install python 

সমস্যাটি হ'ল ম্যাকপোর্টের বিপরীতে, মনে হচ্ছে কোনও পাইথন_স্লেট ইউটিলিটি নেই এবং আমার ডিফল্ট ম্যাক পাইথন সর্বদা ডিফল্ট থাকে

which python

আমাকে দাও

/usr/bin/python

এবং /usr/bin/pythonএটি একটি সিমিলিংক নয়

আমার ডিফল্ট অজগর হতে আমি পাইথন ব্রিউয়ের স্বাদ তৈরি করতে কীভাবে পারি?


14
হোমবুউ অজগরগুলির সিস্টেম ইনস্টলেশনগুলির আর ছায়া নেই। আপনি এটি করতে পারেন: export PATH="/usr/local/opt/python/libexec/bin:$PATH"উত্স: ডিসকোর্স.ব্রেউ.শ / তা /
জর্জ

3
আমি উল্লিখিত সমস্ত উত্তর চেষ্টা করেছিলাম, / আমার / স্থানীয় / বিন আমার / পাত্রে / ইউএসআর / বিনের আগে আসেন। আমি ব্রিউ লিঙ্কটি এবং লিঙ্কমুক্ত করার চেষ্টা করেছি, ব্রিউ ডাক্তার / ইউএসআর / বিন / ইউএসআর / স্থানীয় / বিনের আগে কোনও সমস্যা হওয়ার আগে রিপোর্ট করেননি। তবুও আমি যখন অজগরটি করি তখন আমি / usr / bin / পাইথন পাই এবং মেশানো ইনস্টল করা পাই না not
উজওয়াল রাত্র

চেষ্টা করুন ... যা অজগর 2
ফ্রেজার

উত্তর:


117

আপনি যেমন হোমব্রু ব্যবহার করছেন নীচের কমান্ডটি আরও ভাল চিত্র দেয়:

brew doctor

আউটপুট:

==> / ইউএসআর / বিনটি / ইউএসআর / লোকাল / বিনের আগে ঘটে এর অর্থ হ'ল হোম্রুউ দ্বারা প্রদত্ত প্রোগ্রামগুলির পরিবর্তে সিস্টেম-সরবরাহিত প্রোগ্রামগুলি ব্যবহৃত হবে। এটি যেমন একটি সমস্যা যদি আপনি উদাহরণস্বরূপ। মজাদার পাইথন ইনস্টল।

আপনার b PATH- এ / usr / বিন এর আগে: / usr / স্থানীয় / বিন রাখার জন্য আপনার .bash_ প্রোফাইলে সম্পাদনা বিবেচনা করুন।


4
আপনার পথে / ব্যবহারকারী / স্থানীয় / বিন TWICE না রয়েছে তা নিশ্চিত করুন। আমার পাঠ্যপত্রে কোনও কারণে এটি আগে / পরে / ইউএসআর / বিন উভয়ই উপস্থিত হয়েছিল এবং এটি আমাকে পাগল করছে।
বিনাট

1
অনেক প্রোগ্রাম শিরোনামে / usr / bin / python ব্যবহার করে এটি একটি কার্যকর সমাধান নয়।
মিশচিউট

5
হাই সিয়েরায় ব্রিউয়ের জন্য কেবল python2/ ইউএসআর / স্থানীয় / বিনে রয়েছে, ন্যায়বিচারের জন্য python; সেট export PATH="/usr/local/opt/python/libexec/bin:$PATH"মধ্যে~/.bash_profile
tormodatt

86

দেখুন: হোমব্রিউতে কীভাবে অজগরটি সিমলিংক করবেন?

$ brew link --overwrite python
Linking /usr/local/Cellar/python/2.7.3... 28 symlinks created
$ which python
/usr/local/bin/python

10
আমি পাইথন ইনস্টল করার সময় কেন এমনটি হয় না?
বেন ওয়েস্ট

4
@ বেইন ওয়েস্ট কারণ পাইথন 3, এখন আপনি পাইথন 2 পেয়ে যাবেন তবে পাইথন।
জর্জেকশশ

1
আমি এটি সক্ষম না।
theonlygusti

1
আমার ক্ষেত্রে, এই কমান্ডটি চালানোর পরে টার্মিনালটি পুনরায় চালু করা দরকার (যেমন মার্টিজান কোর্টিক্সের জবাব দ্বারা উল্লিখিত )
jkmarindale

2
এটি আমার জন্য অজগর @ 2 লিঙ্ক করে
অ্যান্ড্রু বি

63

দ্রুত ঠিক করা:

  1. খোলা /etc/paths
  2. লাইনের ক্রম পরিবর্তন করুন (শীর্ষে সর্বোচ্চ অগ্রাধিকার)

আমার ক্ষেত্রে /etc/pathsদেখে মনে হচ্ছে:

/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin

আপনি যদি ওএসএক্সের পাথগুলি সম্পর্কে আরও জানতে চান তবে আমি এই নিবন্ধটি বেশ কার্যকর বলে মনে করেছি:

http://muttsnutts.github.com/blog/2011/09/12/manage-path-on-mac-os-x-lion/


1
আপনাকে ধন্যবাদ, উপরের সমস্ত উত্তরগুলি আমার সমস্যার সমাধান করেছে, তবে আপনি করেছেন! তোমাকে অনেক ধন্যবাদ!
শান

7
এটির সাথে সমস্যাটি হ'ল এটি এটি সমস্ত ব্যবহারকারীর জন্য পরিবর্তন করে: /, আইএমও আরও নির্দিষ্ট কিছু পরিবর্তন করা ভাল।
র‌্যান্ডাল হান্ট

@ র্যান্ডলহান্ট কীভাবে এবং কীভাবে পছন্দ করেন?
মাইক Kormendy

63

যেমন হোমব্রিউ ইনস্টলার নিজেই পরামর্শ দিয়েছেন, এটি আপনার .bashrcবা .zshrc:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

11
এটি হাই সিয়েরার সঠিক পদ্ধতি। ভোট দিন!
টর্মোড্যাট

ম্যাকসগুলি zsh টার্মিনালটিতে ডিফল্ট হয়, তাই সম্ভবত .zshrcফাইলগুলি .bashrcপরিবর্তিত হওয়া দরকার এমন ফাইল নয় ।
ব্যবহারকারীর 39444430

1
অন্য উত্তরগুলি ছাড়া আর কিছুই আমার পক্ষে কাজ করেনি! এখানে ম্যাকোস ক্যাটালিনা চলছে। ধন্যবাদ!
আলী আকবর

এটি সঠিক উত্তর
হর্ষমার্শমালো

44

আমি ওএসএক্স হাই সিয়েরার জন্য "ব্রিউ ইনস্টল পাইথন" করেছি। $PATHছিল /usr/local/binঅন্য কোন পথ সামনে কিন্তু এখনও which pythonসিস্টেমের পাইথন নির্দেশিত হয়।

আমি যখন গভীর থেকে তাকালাম তখন দেখতে পেলাম যে এখানে অজগর নির্বাহযোগ্য নেই /usr/local/bin। এক্সিকিউটেবলের নামকরণ করা হয়েছে python2। এই সমস্যাটির সমাধানের জন্য একটি প্রতীকী লিঙ্ক তৈরি করুন pythonযা এখানে নির্দেশ করছে python2:

/usr/local/bin $: ln -s python2 python


4
এই বিষয়টি নিশ্চিত করে হাই সিয়েরা
এলোমেলো ছাড়ের

আপনি আমার নায়ক. বিশ্বাস করতে পারি না আমি এই সমাধানটি বুঝতে পারি নি!
স্মোকিন জো

3
আবেদনের জন্য টার্মিনালটি পুনরায় চালু করা দরকার
lexa-b

3
$ সিডি / usr / স্থানীয় / বিন $ ln -s পাইথন 3 পাইথন
নিউমনিক

1
এবং আমি ধরে নিই যে পাইপ 3 (বা পিপ 2) তেও সিম-লিঙ্ক পাইপ?
অ্যালেক্সপি_কিটনে

23

হোমব্রু "/ usr / বিন" এ স্টাফ প্রতিস্থাপন করে না। আপনি কেবল "/ usr / local / bin" কে "/ usr / bin" এর আগে আপনার পথে রাখতে চাইবেন, তারপরে "কোন অজগর আপনাকে" / usr / স্থানীয় / বিন / পাইথন "দেবে"।

/ Usr / বিন / পাইথন (বা / usr / বিন / রুবি) প্রতিস্থাপন অত্যন্ত প্রস্তাবিত নয়।


2
তবে তা হয় না!
theonlygusti

22

pythonসূত্র এখন ব্যবহার করে python3(এখনকারীর জন্য v3.6.5), মিশ্রণ ডিরেক্টরিটি লিঙ্ক করবে :

/usr/local/opt/python -> ../Cellar/python/3.6.5

এটি বাইনারি যুক্ত করবে :

/usr/local/bin/python3 -> ../Cellar/python/3.6.5/bin/python3

আপনার যদি এখনও ব্যবহারের প্রয়োজন হয় তবে python2.xব্যবহার করুন:

brew install python@2

হোমব্রিউ ব্যবহার করতে, ব্যাশের জন্য pythonকেবল PATH এ এর ​​ডিরেক্টরিটি লিখুন:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

মাছের জন্য:

set -x PATH /usr/local/opt/python/libexec/bin $PATH

বিঃদ্রঃ:

  1. এটি করার ফলে সিস্টেমের ডিফল্ট সংস্করণ ছায়া হবে python
  2. হোমব্রিউটি /usr/local/share/pythonপুরানো সংস্করণগুলিতে পাইথনকে লিঙ্ক করতে ব্যবহৃত হত ।

এটা আমার জন্য কৌশল ছিল। ডিফল্টরূপে, আপনার পাত্রে ব্রিউ ইনস্টল python3হয় - নামক একটি এক্সিকিউট নয়python .. বিশেষত /usr/local/opt/python/libeexec/binআমার পথের অন্যান্য ডিরেক্টরিগুলির আগে উল্লেখ করা জিনিসগুলি সাজানো।
cam8001

13

আপনার $ PATH সংশোধন করুন, এটি আপনার বাশার্ক বা বাশ_প্রফাইলে যুক্ত করুন:

export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH

আরও ক্লিক করুন এখানে: ইস্যু # 89791


আমার সম্পাদক "পাইচার্ম" ~ / .bashrc ব্যবহার করছিলেন এবং আমি এই সামান্য রত্ন পর্যন্ত ব্রিউয়ের পাইথনটি পেতে সক্ষম হইনি। ধন্যবাদ @ আবেন
জেমসডাহার্ট

10

হোমবারউ পাইথনটি যেখানেই রয়েছে / ইউএসআর / বিনের আগে অনুসন্ধান করা হয়েছে তা নিশ্চিত করতে আপনাকে আপনার PATH পরিবেশগত পরিবর্তনশীল সম্পাদনা করতে হবে। আপনি নিজের শেল কনফিগারেশনে জিনিসগুলি সেট আপ করতে পারতেন যেমন পাইথনের মতো একটি ভেরিয়েবল রাখতে আপনার পাইথনের পছন্দসই সংস্করণে সেট করতে হবে এবং কমান্ড লাইন থেকে কল $PYTHONকরার চেয়ে কল করে python

এছাড়াও, অন্য একটি পোস্টার হিসাবে বলা হয়েছে (এবং বিশেষত ম্যাকের উপরে) পাইথনটিকে / usr / বিনে এটিকে অন্য পাইথন ইনস্টলের দিকে ইঙ্গিত করার জন্য গণ্ডগোল করবেন না। আপনি যদি ঠিক করেন তবেই সমস্যা চাইছেন।


9

আমি করেছি brew install python, আমার $PATHভাল ছিল, কিন্তু তবুও, which pythonআমাকে একটি সিস্টেম ইনস্টল করে দিয়েছে। টার্মিনালটি পুনরায় চালু করা এটি স্থির করে।


1
আমার যা করা দরকার তা হল এটি। আমি কখন নিশ্চিত এটি করছি না। দেখে মনে হচ্ছে ঠিক চালানো হবে brew install pythonএবং তারপরে, টার্মিনাল পুনরায় চালু করুন, আর কিছুই নয়? কোন দরকার নেইbrew unlink & brew link?
কন আন্তোনাকোস

ব্রু ব্যবহার করে পাইথন ইনস্টল করার ঠিক পরে, "যা পাইথন" আমাকে সঠিক স্থানীয় পাইথন পাথ দেয়, তবে "পাইথন" কমান্ডটি নির্দেশ করে যে এটি সিস্টেমটি চালু হওয়ার আগে ইনস্টল করা হয়েছিল। পুনরায় চালু টার্মিনাল এটি স্থির করে।
মিশেল

2
পুনঃসূচনা টার্মিনালটি প্রয়োজনীয় নয়, চেষ্টা করুনhash -r
জর্জেকশপ

জেএফসি, আমি এটি পড়ার আগে পর্যন্ত আমার মন হারাচ্ছিলাম। আমি ইতিমধ্যে brew unlink & brew linkবেশ কয়েকবার করেছি। কেবলমাত্র টার্মিনালটি পুনরায় চালু করতে হবে
ডমিনিক

6

pythonএখন নির্দেশ করুন python3, যদি আপনার প্রয়োজন হয় python 2তবে: brew install python@2এবং তারপরে আপনার .zshrc বা .bashrc ফাইলটিতে export PATH="/usr/local/opt/python@2/libexec/bin:$PATH" এখন pyhon --version= পাইথন ২.7.১৪ এবং python3 --version= পাইথন ৩.6.৪। আমার টার্মিনালটিতে এই আচরণটিই আমি অভ্যস্ত।


5

আমি বিশ্বাস করি হোমব্রু অজগরটিকে ডিফল্ট করার উপায় রয়েছে তবে আমার মতে সমস্যা সমাধানের সঠিক উপায়টি হল পাইথন পাথগুলির সাথে জগাখিচুড়ি করা নয়: এমন একটি ভার্চুয়ালেনভ তৈরি করা ভাল যেখানে হোমব্রু পাইথনটি ডিফল্ট হবে (ভার্চুয়ালেনভ ব্যবহার করে - -পিথন বিকল্প)। মতো সরঞ্জাম ব্যবহার python_selectকরা প্রায়শই একটি খারাপ ধারণা।


1

শুধু কর:

brew install python
brew link python

এটি করার পরে, এটি আপনার বাশার্ক বা বাশ_প্রফাইলে যুক্ত করুন:

alias python='/usr/local/bin/python2'

উপভোগ করুন!


মনে হচ্ছে আপনারাও একই সমস্যায় পড়েছেন I লিঙ্কের সাথে চোলাই, সৃষ্টি যে এমনকি সঙ্গে linkউত্তর কমান্ড এখানে মধ্যে /usr/local/binহয় python2পরিবর্তে python। এটিকে ঘিরে কাজ করার জন্য একটি উপনাম ব্যবহার করা একটি খারাপ ধারণা বলে মনে হচ্ছে, তবে আমি এর চেয়ে ভাল আর কিছু পাইনি।
প্যাট্রিক এম

ওরফের পরিবর্তে, আমি কেবল এটি অনুলিপি করেছি cp /usr/local/bin/python2 /usr/local/bin/pythonএবং দেখে মনে হচ্ছে এটি ভালভাবে কাজ করবে। এটি কি একদম কুরুচিপূর্ণ কাজ?
কিংব 12

1

যোগ /usr/local/opt/python/libexec/binস্পষ্টভাবে আপনার টু .bash_profile:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

এর পরে, এটি সঠিকভাবে কাজ করা উচিত।


1

আপনি যদি মাছের শেল হন

echo 'set -g fish_user_paths "/usr/local/opt/python/libexec/bin" $fish_user_paths' >> ~/.config/fish/config.fish

1

পাইথনের সংস্করণগুলির মধ্যে ইনস্টল এবং স্যুইচ করার পরিবর্তে পাইএনভ ব্যবহার করুন। আমি বছরের পর বছর ধরে rbenv ব্যবহার করে যা একই জিনিসটি করে তবে রুবির পক্ষে। তার আগে এটি ছিল নরকের পরিচালনার সংস্করণ।

ইনস্টলেশন নির্দেশাবলীর জন্য পাইয়নভের গিথব পৃষ্ঠার সাথে পরামর্শ করুন । মূলত এটি এর মতো হয়: - হোমব্রু ব্যবহার করে পাইয়ানভ ইনস্টল করুন। brew install pyenv - আপনার শেল স্টার্টআপ স্ক্রিপ্টের শেষে একটি ফাংশন যুক্ত করুন যাতে পাইয়ানভ এটি জাদু করতে পারে।echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

  • আপনার প্রয়োজন পাইথনের বিভিন্ন সংস্করণ ইনস্টল করতে পাইয়েনভ ব্যবহার করুন। pyenv install 3.7.7
  • আপনি সবেমাত্র ইনস্টল করা একটি আধুনিক সংস্করণে ডিফল্ট (গ্লোবাল) সংস্করণ সেট করুন। pyenv global 3.7.7
  • আপনি যদি এমন একটি প্রকল্পে কাজ করেন যা অজগরটির আলাদা সংস্করণ ব্যবহার করতে পারে তবে তা দেখুন pyevn local। এটি আপনার প্রকল্পের ফোল্ডারে একটি ফাইল তৈরি করে যা অজগর সংস্করণ নির্দিষ্ট করে। পাইয়ানভ সেই ফাইলের সংস্করণটি দিয়ে বৈশ্বিক পাইথন সংস্করণকে ওভাররাইড করবে।

0

আপনি / ইত্যাদি / পাথ সম্পাদনা করতে পারেন। আমারটা এখানে:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

তারপরে পাইথন সংস্করণটির জন্য একটি সিমিলিংক যুক্ত করুন। আমার ক্ষেত্রে

$ cd /usr/local/bin
$ ln -s python3 python

ভাল খবর!


0

উচ্চ সিয়েরা যেহেতু, আপনার ব্যবহারের প্রয়োজন:

sudo chown -R $(whoami) $(brew --prefix)/*

এটি কারণ /usr/localআর chowned করা যাবে না


-7

ডিফল্ট পাইথনটি দিয়ে আপনি কী বোঝেন তা ধারণা নেই। আমি পাইথন ইন্টারপ্রেটারকে আলাদা সংস্করণে প্রতিস্থাপন করা খারাপ অভ্যাস হিসাবে বিবেচনা করি। সিস্টেম কার্যকারিতা পারে সিস্টেম পাইথন এবং নির্দিষ্ট মডিউল বা একটি নির্দিষ্ট পাইথন সংস্করণে কিছু উপায় নির্ভর করে। পরিবর্তে আপনার কাস্টম পাইথন ইনস্টলেশনগুলি নিরাপদ পৃথক স্থানে ইনস্টল করুন এবং ডিফল্ট পাইথনটির পরিবর্তে আপনাকে পাথ লুথিংয়ের মাধ্যমে পাইথন কল করার জন্য আপনার $ PATH সামঞ্জস্য করুন ।


5
সিস্টেমের অজগরের পথে পথে হোমব্রাবির অজগরটি আসার কোনও ঝুঁকি নেই। এটি খুব সাধারণ বিষয়।
স্টিভন নোবেল

3
এছাড়াও, অ-অ্যাপল পাইথন ব্যবহারের প্রয়োজনটি আসল। আমি ম্যাটপ্ল্লিটিব, নুমপি এবং সায়পি পাই এবং 'ডিফল্ট' (ওরফে অ্যাপল) পাইথনের সাথে চলার চেষ্টা করছি। এটি 32/64 বিটগুলির চিকিত্সা সম্পর্কে এমন কিছু যা কেবল এক্সটেনশানগুলি পৃথক করে দেয়। পরিবর্তে খুব ভাল মিশ্রিত পেয়ে খুব, খুব, খুব আনন্দিত। এবং ডিফল্টরূপে ('বারউ ইনস্টল পাইথন') ব্রু আপনার অর্থ ঠিক কী করে - এটি দ্বিতীয় পাইথনকে আলাদা কাঠামোতে ইনস্টল করে, ওভাররাইডিং পাথগুলিতে নয় (যা এই কারণেই এই প্রশ্নটি উত্থাপিত হয় কেন)।
আকৌপ্পি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.