আমি কনডাকে ডিফল্টরূপে বেস পরিবেশটি সক্রিয়করণ থেকে কীভাবে প্রতিরোধ করব?


234

আমি সম্প্রতি আমার ম্যাকে অ্যানাকোন্ডা 2 ইনস্টল করেছি। আমি একটি নতুন টার্মিনাল সেশন খুললে ডিফল্টরূপে কনডা বেস পরিবেশটি সক্রিয় করতে কনফিগার করা হয়।

আমি কনডা কমান্ডগুলিতে অ্যাক্সেস চাই (অর্থাত্ আমি কনডায়ার পথটি আমার $ PATH এ যুক্ত করতে চাই যা কনডা সূচনা করার সময় করণীয় তাই ভাল।

তবে আমি সাধারণত পাইথনে প্রোগ্রাম করি না, এবং আমি চাই না কনডা ডিফল্টরূপে কোনও পরিবেশ সক্রিয় করুক।

conda initপ্রম্পট থেকে প্রথম নির্বাহ করার সময়, কন্ডা আমার সাথে নিম্নলিখিতগুলি যুক্ত করে .bash_profile:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/geoff/anaconda2/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
if [ -f "/Users/geoff/anaconda2/etc/profile.d/conda.sh" ]; then
    . "/Users/geoff/anaconda2/etc/profile.d/conda.sh"
else
    export PATH="/Users/geoff/anaconda2/bin:$PATH"
fi
# fi
unset __conda_setup
# <<< conda initialize <<<

আমি যদি পুরো ব্লকটি মন্তব্য করি তবে আমি কোনও কন্ডা পরিবেশ সক্রিয় করতে পারছি না।

আমি ব্যতীত পুরো ব্লকটি মন্তব্য করার চেষ্টা করেছি

export PATH="/Users/geoff/anaconda2/bin:$PATH"

তবে তারপরে যখন আমি একটি নতুন অধিবেশন শুরু করেছি এবং একটি পরিবেশ সক্রিয় করার চেষ্টা করেছি তখন আমি এই ত্রুটি বার্তাটি পেয়েছি:

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.

এই প্রশ্নটি (এবং এটির মতো অন্যরা) সহায়ক তবে শেষ পর্যন্ত আমার প্রশ্নের উত্তর দেয় না এবং লিনাক্স ব্যবহারকারীদের জন্য আরও উপযুক্ত।

স্পষ্টতার জন্য, আমি টার্মিনাল সেশন খোলার সময় কনডাকে বেস সক্রিয় না করার জন্য বলছি (base)আমার থেকে $PS1এমনটি সরিয়ে দিতে বলছি না ।


আপনি কি source activateপরিবর্তে ব্যবহার করার চেষ্টা করেছেন ? ওরফে "ওল্ডস্কুল পদ্ধতি"
জেনা

উত্তর:


481

আমার সাথে কনডা রয়েছে 6.6 এর মতো একটি কোডের ব্লক যা কনডা দ্বারা যুক্ত হয়েছিল। আমার ক্ষেত্রে, স্বয়ংক্রিয় বেস অ্যাক্টিভেশনটি অক্ষম করার জন্য একটি কনডা কনফিগারেশন সেটিংস রয়েছে:

conda config --set auto_activate_base false

প্রথমবার আপনি এটি চালানোর সময়, এটি ./condarcডিফল্টকে ওভাররাইড করতে সেটিংটি দিয়ে আপনার হোম ডিরেক্টরিতে একটি তৈরি করবে।

এটি আপনার ডি- .bash_profileক্লাটার করবে না তবে কনডা পরিচালনা করে এমন অংশটি ম্যানুয়াল সম্পাদনা ছাড়াই এটি একটি ক্লিনার সমাধান।


1
গ্রেট। আপনি সেটিং সম্পর্কে কোথায় জানতে চান? আমার পরিচিতি টিউটোরিয়ালগুলির কোথাও পড়ার কথা মনে নেই?
DryLabRebel

6
@ ড্রিল্যাবরেবল এটি কোনও রিলিজ নোটে উল্লেখ করা হয়নি, তবে এটি চালিয়ে আপনি কনফিগারেশন বিকল্পগুলিতে বর্ণিত দেখতে পাবেন conda config --describe। "অটো_অ্যাক্টিভেট_বেস" এর জন্য কোডবেস সন্ধান করাকে কনডা ভি 4.6.0 দেখাতে দেখা যাচ্ছে is
মার্ভ

2
ওহো, আপনার প্রশ্ন মিস হয়েছে। দুঃখিত! @merv ঠিক এটি কনফিগারেশনে রয়েছে। আমি একটি ভিন্ন সমস্যার জন্য বিভিন্ন বিকল্পের দিকে চেয়ে ছিল এবং সেই বিকল্পটি দেখেছি।
jieong

5
@ ড্রাইল্যাবরেবল ইনস্টলারটি অ্যানাকোন্ডা আরম্ভ করার পরে এটি প্রিন্ট করে: আপনি যদি চান যে কনডার বেস পরিবেশটি প্রারম্ভকালে সক্রিয় করা না হয়, অটো_অ্যাক্টিভেট_বেস প্যারামিটারটি মিথ্যাতে সেট করুন: conda config --set auto_activate_base falseঅ্যানাকোন্ডা 3 ইনস্টল করার জন্য আপনাকে ধন্যবাদ!
ঝি ইউয়ান

5
এই উত্তরের জন্য অনেক ধন্যবাদ। আইএমও এটি ডিফল্ট আচরণ হওয়া উচিত। লিনাক্সের সাথে যারা ভাবছেন তারা লিঙ্কযুক্ত লিনাক্স প্রশ্নটি অনুসরণ করবেন কিনা, কেবল এটি অনুসরণ করুন এটি ওএস (লিনাক্স মিন্ট) নির্বিশেষে কাজ করে বলে মনে হচ্ছে
কামেল

22

উত্তরটি condaআপনি যে সংস্করণটি ইনস্টল করেছেন তার উপর কিছুটা নির্ভর করে । কনডা> = ৪.৪ সংস্করণগুলির জন্য, এটি deactivateআরম্ভের পরে কনডা পরিবেশে যথেষ্ট হওয়া উচিত , সুতরাং যুক্ত করুন

conda deactivate

ঠিক নীচে

# <<< conda initialize <<<

5
এটি কাজ করা উচিত, এবং সাধারণীকরণ করা উচিত। তবে আমি এমন কোনও সমাধান পছন্দ করব যা আমার ব্যাশ প্রোফাইলটিকে যুক্ত করার পরিবর্তে ডিক্লুটটার করে দেবে।
ড্রিল্যাবরেবল

আপনি ডিক্লুটটার করতে পারেন কিনা তা নির্ভর করে আপনার কী কনডা রয়েছে তা নির্ভর করে। যদি আমি সঠিকভাবে বুঝতে পারি, একবার আপনার কন্ডদা ৪.6 হলে আপনার কেবলমাত্র __conda_setupফাংশনটি প্রয়োজন , যাতে আপনি পুরো জিনিসটি lines লাইনে নামতে পারেন। তবে আমি মনে করি না এখানে
ডিক্লুট

2
তবে আপনি যদি সেই বিভাগটি ম্যানুয়ালি সম্পাদনা করেন তবে কনডা আর এটি স্বয়ংক্রিয়ভাবে পরিচালনা করতে পারবেন না। আমি কেবল এটি একা রেখে যাওয়ার পরামর্শ দেব।
23 শে 06 এ দারথবিথ

2
এটি কাজ করে না .zshrc এ সংযুক্ত কনডা কোড সহ একটি নতুন শেল খোলার সাথে সাথে আমি প্রতিবার (বেস) এনভ্রোমেন্টে ঠেলব।
মের্লিন

1
ঠিক যেমন মেরলিন বলেছিলেন, নতুন টার্মিনাল শুরু করলে আবার (বেস) থাকে
jreft56

18

সুতরাং শেষ পর্যন্ত আমি দেখতে পেলাম যে আমি যদি কন্ডা আরম্ভের ব্লকটি এভাবে মন্তব্য করি:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
# __conda_setup="$('/Users/geoff/anaconda2/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
# if [ $? -eq 0 ]; then
    # eval "$__conda_setup"
# else
if [ -f "/Users/geoff/anaconda2/etc/profile.d/conda.sh" ]; then
    . "/Users/geoff/anaconda2/etc/profile.d/conda.sh"
else
    export PATH="/Users/geoff/anaconda2/bin:$PATH"
fi
# fi
# unset __conda_setup
# <<< conda initialize <<<

এটি ঠিক কীভাবে আমি চাই তা কাজ করে। অর্থাৎ, কনডা চাইলে একটি পরিবেশ সক্রিয় করার জন্য উপলব্ধ, তবে ডিফল্টরূপে সক্রিয় হয় না।


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

@ ড্রিল্যাবরেবল - আপনি কি কখনও এমন দৃ rob় পন্থা খুঁজে পেয়েছেন যা rcফাইল থেকে বিশৃঙ্খলা সরিয়ে ফেলে ? আমি এটিতে আগ্রহী হব, কেবল বিষয়গুলি বিশৃঙ্খলা না করে বরং অন্যান্য এনভির মতো কন্ডাকে চিকিত্সা করতে সক্ষম হব
বাক্সএক্স

@ বাক্স নং আমার নেই। আপনি যদি কন্ডার সর্বশেষতম সংস্করণটি চান এবং এটি কাজ করতে চান তবে আপনার সত্যিকার অর্থেই আরম্ভের কমান্ডগুলির দরকার।
ড্রাইল্যাবরেবল

ঠিক আছে চিয়ার্স, আমি মনে করি যদি আপনি কোনও কেন্দ্রিয় অবস্থানে নয়, প্রজেক্টের ডায়ারে কনডা এনভিটি ইনস্টল করেন তবে সেখানে কোনও উপায় থাকতে পারে। এখনও খুব নিশ্চিত নয়
বেক্সেক্স

এটির ব্যবহারের তুলনায় এটির কেবল ডাউনসাইড রয়েছে বলে মনে হচ্ছে conda config --set auto_activate_base false, আপনি কী বিশদ বর্ণনা করতে পারেন?
এএমসি

16

conda৪.6 এর পরে এটি অর্জনের জন্য 3 টি উপায় রয়েছে । (শেষ পদ্ধতির সর্বাধিক অগ্রাধিকার রয়েছে))

  1. conda configসেটিংস পরিবর্তন করতে সাব-কমান্ড ব্যবহার করুন ।

    conda config --set auto_activate_base false
  2. বস্তুত, সাবেক conda configউপ-কমান্ড কনফিগারেশন ফাইল পরিবর্তন করা হয় .condarc। আমরা .condarcসরাসরি সংশোধন করতে পারি । .condarcআপনার হোম ডিরেক্টরি ডিরেক্টরিতে নিম্নলিখিত সামগ্রী যুক্ত করুন ,

    # auto_activate_base (bool)
    #   Automatically activate the base environment during shell
    #   initialization. for `conda init`
    auto_activate_base: false
  3. CONDA_AUTO_ACTIVATE_BASEশেল এর init ফাইলে পরিবেশ পরিবর্তনশীল সেট করুন। ( .bashrcব্যাশ জন্য, .zshrczsh জন্য)

    CONDA_AUTO_ACTIVATE_BASE=false

    থেকে রূপান্তর করা condarcফাইল-ভিত্তিক কনফিগারেশন প্যারামিটারের নামটি পরিবেশের ভেরিয়েবল প্যারামিটার নামে করতে, নামটিকে সমস্ত বড় হাতের অক্ষর তৈরি করুন এবং পূর্বে চাপ দিন CONDA_ । উদাহরণস্বরূপ, কনডোর always_yesকনফিগারেশন প্যারামিটারটি CONDA_ALWAYS_YESএনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে নির্দিষ্ট করা যেতে পারে ।

    পরিবেশে সেটিংস ফাইলের সাথে সম্পর্কিত সেটিংসকে প্রাধান্য দেয় .condarc

তথ্যসূত্র


দুর্দান্ত উত্তর আমি স্ক্রিপ্টগুলির মধ্যে env export CONDA_AUTO_ACTIVATE_BASE=false; eval "$(conda shell.bash hook)"
ভেরি পদ্ধতিটি এর

export CONDA_AUTO_ACTIVATE_BASE=falseকাজ করার জন্য অপশন 3 এর জন্য আমাকে আমার .zshrc এ যুক্ত করতে হয়েছিল।
নরম্যানিয়াস

9

টার্মিনালে কনডা বেস পরিবেশের স্বয়ংক্রিয় অ্যাক্টিভেশন অক্ষম করতে:

conda config --set auto_activate_base false

কনডা বেস পরিবেশ সক্রিয় করতে:

conda activate

3
আরে, এই উত্তরটি সঠিক, তবে গৃহীত উত্তরের সাথে কার্যত অভিন্ন। আমার প্রশ্নটি কন্টো সক্রিয় করার সাথে সম্পর্কিত নয়, টিউটোরিয়ালগুলির মধ্য দিয়ে যাওয়ার সময় আপনি যা শিখেন এটি প্রথম জিনিস। পূর্ববর্তী উত্তরে এখনও সরবরাহ করা হয়নি এমন কিছু সহায়ক, প্রাসঙ্গিক তথ্য যুক্ত করার কথা বিবেচনা করুন।
DryLabRebel

2
আমি স্বয়ংক্রিয়ভাবে অক্ষম করার পরে কীভাবে ম্যানুয়ালি সক্রিয় করতে হবে তা সন্ধান করছিলাম। ধন্যবাদ!
eigil

এই সাহায্য করেছে। অটো-অ্যাক্টিভেটটি অক্ষম করার পরে কীভাবে ম্যানুয়ালি কনডা সক্রিয় করতে হয় তাও আমি খুঁজছিলাম।
ক্রিস নেজুগুনা

1

একটি বিষয় যা উল্লেখ করা হয়নি, তা হ'ল সক্রিয় পরিবেশ না থাকা এবং বেস পরিবেশটি সক্রিয় করার মধ্যে কিছুটা পার্থক্য নেই, যদি আপনি কেবল কনডা (পাইথনের) স্ক্রিপ্ট ডিরেক্টরি থেকে অ্যাপ্লিকেশন চালনা করতে চান (যেমন @ ড্রায়াব্রাবেল চায় )।

আপনি কনডা এবং কনডা এর মাধ্যমে ইনস্টল এবং আনইনস্টল করতে পারেন বেস পরিবেশটিকে সক্রিয় হিসাবে দেখায় - যা মূলত এটি:

> echo $Env:CONDA_DEFAULT_ENV
> conda env list
# conda environments:
#
base                  *  F:\scoop\apps\miniconda3\current

> conda activate
> echo $Env:CONDA_DEFAULT_ENV
base
> conda env list
# conda environments:
#
base                  *  F:\scoop\apps\miniconda3\current

0

আপনি যদি আপনার বাশার্ককে সহজ রাখতে চান তবে আপনি conda initউত্পন্ন সমস্ত বিশৃঙ্খলা অপসারণ করতে পারেন এবং কেবল একটি একক লাইন রাখতে পারেন:

. "/Users/geoff/anaconda2/etc/profile.d/conda.sh"

আপনার শেলটিতে কনডা সক্ষম করতে প্রস্তাবিত পরিবর্তন দেখুন

এটি বেস পরিবেশকে সক্রিয় না করে কনডা কমান্ডটি উপলব্ধ করবে।

যদি আপনি অন্য সিস্টেমে যেখানে আপনার বাশার্ক ব্যবহার করতে চান যেখানে একই পথে কনডা ইনস্টল করা হয়নি, আপনি ত্রুটি বার্তা এড়াতে if/ fiলাইনগুলি পাশাপাশি রাখতে পারেন , যেমন:

if [ -f "/Users/geoff/anaconda2/etc/profile.d/conda.sh" ]; then
    . "/Users/geoff/anaconda2/etc/profile.d/conda.sh"
fi

আপনি যদি আপনার বাশার্ককে সহজ রাখতে চান তবে আপনি সমস্ত কনডা থ্রি উত্সাহিত ছত্রাক অপসারণ করতে পারেন, এবং কেবল একটি একক লাইন "ক্লাটার" রাখতে পারেন যা বলছে !! এই ব্লকের অন্তর্ভুক্ত সামগ্রীগুলি 'কনডা ডিআইআই' দ্বারা পরিচালিত হয় !! ? উপযুক্ত কন্ডা সেটিং / কনফিগার বিকল্পটি পরিবর্তনের পরিবর্তে এটি করার সুবিধা কী?
এএমসি

-2

এটি সাম্প্রতিক অ্যানাকোন্ডার একটি বাগ হতে পারে। আমার জন্য কী কাজ করে:

পদক্ষেপ 1:, vim /anaconda/bin/activateএটি দেখায়:

 #!/bin/sh                                                                                
 _CONDA_ROOT="/anaconda"
 # Copyright (C) 2012 Anaconda, Inc
 # SPDX-License-Identifier: BSD-3-Clause
 \. "$_CONDA_ROOT/etc/profile.d/conda.sh" || return $?
 conda activate "$@"

পদক্ষেপ 2: শেষ লাইনটি মন্তব্য করুন: # conda activate "$@"


-2

আমিও একই সমস্যার মুখোমুখি হয়েছি। প্রাথমিকভাবে আমি .bash_ প্রোফাইলে মুছে ফেলেছি তবে এটি সঠিক উপায় নয়। অ্যানাকোন্ডা ইনস্টল করার পরে এটি এই সমস্যার জন্য নির্দেশাবলী পরিষ্কারভাবে প্রদর্শিত হচ্ছে। অ্যানাকোন্ডা প্রদত্ত সমাধানের জন্য দয়া করে চিত্রটি দেখুন

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