ฉันจะเปิดใช้งานสภาพแวดล้อม conda ใน. bashrc ของฉันได้อย่างไร


18

ฉันใช้ Conda สำหรับการจัดการแพ็คเกจใน Python ฉันมีสภาพแวดล้อมพื้นฐานที่ฉันใช้เกือบตลอดเวลาและฉันต้องการให้โหลดตามค่าเริ่มต้นเมื่อฉันเปิดเทอร์มินัล ฉันจะตั้งค่า.bashrcให้โหลดสภาพแวดล้อมได้อย่างไร

ถึงตอนนี้ฉันได้ลองsource activate myenvแล้ว แต่ความเข้าใจของฉันคือฉันต้องให้เส้นทางที่แท้จริงภายใน.bashrcไฟล์ source ~/anaconda3/envs/myenv/bin/activateฉันก็พยายาม แม้ว่าสิ่งนี้จะไม่ทำให้เกิดข้อผิดพลาด แต่ก็ไม่ได้เปิดใช้งานสภาพแวดล้อม ฉันใช้ Ubuntu 16.04

คำตอบ:


21

ดูเหมือนว่าคำตอบที่ยอมรับอาจล้าสมัย จากเอกสาร :

หากเชลล์ของคุณคือ Bash หรือตัวแปร Bourne ให้เปิดใช้งาน conda สำหรับผู้ใช้ปัจจุบันด้วย

$ echo ". /home/<user>/miniconda3/etc/profile.d/conda.sh" >> ~/.bashrc

หรือสำหรับผู้ใช้ทั้งหมดให้เปิดใช้งาน conda ด้วย

$ sudo ln -s /home/<user>/miniconda3/etc/profile.d/conda.sh /etc/profile.d/conda.sh

ตัวเลือกข้างต้นจะเปิดใช้งานคำสั่ง 'conda' อย่างถาวร แต่ไม่ได้ใส่สภาพแวดล้อมฐาน (root) ของ conda ไว้บน PATH ในการทำเช่นนั้นให้เรียกใช้

$ conda activate

ในเทอร์มินัลของคุณหรือเพื่อวางสภาพแวดล้อมพื้นฐานบน PATH อย่างถาวรให้เรียกใช้

$ echo "conda activate" >> ~/.bashrc

ก่อนหน้านี้กับ conda 4.4 วิธีที่แนะนำในการเปิดใช้งาน conda คือการแก้ไข PATH ในไฟล์ ~ / .bashrc ของคุณ คุณควรลบบรรทัดที่มีลักษณะดังกล่าวด้วยตนเอง

export PATH="/home/<user>/miniconda3/bin:$PATH"

^^^ บรรทัดข้างต้นไม่ควรอยู่ในไฟล์ ~ / .bashrc ของคุณอีกต่อไป! ^^^


วิธี softlink คือ RAD!
หยุดงาน

หากการเพิ่ม. bashrc ไม่ทำงานให้ลองเพิ่มในไฟล์. profile
oya163

4

ระหว่างการติดตั้ง Anaconda ควรมีรายการที่เพิ่มไฟล์. bashrc เช่นนี้

export PATH="/home/<user>/anaconda3/bin:$PATH"

หากไม่มีอยู่ให้ตรวจสอบการติดตั้งด้วยการรันwhich condaและอัพเดต. bashrc ด้วยพา ธ ถึง bin

สิ่งนี้ชี้ไปที่ 'conda' ที่เรียกใช้งานได้และตั้งค่าเส้นทางเพื่อจัดการการเปิดใช้งาน conda

เพิ่มบรรทัดนี้หลังคำสั่งส่งออก:

source activate <your_environment>

จากตรงนั้นคุณสามารถsource ~/.bashrcโหลดสภาพแวดล้อมไปยังเชลล์ปัจจุบันได้


2

แก้ไขที่ถูกต้อง

(ใช้ได้กับรุ่น> = 4.6)

find . -type f -name 'conda' ตรวจสอบว่า conda binary อยู่ที่ไหนจากนั้นให้ cd หรือให้เส้นทางที่สมบูรณ์และเรียกใช้

conda config --set auto_activate_base true

หากต้องการปิดใช้งานจะทำเช่นเดียวกัน แต่เป็นเท็จ เห็นได้ชัดว่า:

conda config --set auto_activate_base false

แก้ไขด่วน & สกปรก # 1

วางสิ่งต่อไปนี้ลงใน. bashrc ของคุณแทนที่ด้วยค่าที่ชัดเจนและแหล่งที่มาของ. bashrc ( source .bashrc) ควรใช้ได้กับรุ่น Miniconda3> = 4.6

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

นี่เป็นการตัดและวางจาก. bashrc ของฉันเองคุณสามารถลบความคิดเห็นได้ แต่ฉันคิดว่ามันมีประโยชน์เหมือนตัวคั่น

แก้ไขด่วน & Dirty # 2

ลบทุกสิ่งด้วยคำสั่งลบที่คุณชื่นชอบ ( rm -rf ~/miniconda3) เรียกใช้สคริปต์การติดตั้งอีกครั้งและให้ความสนใจไปที่พร้อมที่จะช่วยให้คุณถ้าคุณต้องการเริ่มต้นโดยอัตโนมัติ

สิ่งที่เรือของคุณ :)


1

สำหรับทุบตีใช้:

$ cd YOUR_PATH_ANACONDA/bin
$ ./conda init bash

.bashrcที่จะแก้ไขโดยอัตโนมัติ

โหลด:

$ source ~/.bashrc

ทดสอบ (ติดตั้ง Spyder):

$ conda install -c anaconda spyder

เรียกใช้ Spyder

$ spyder

0

หากคุณต้องการให้สภาพแวดล้อม conda เปิดใช้งานโดยค่าเริ่มต้นเมื่อคุณเปิดใช้งานเทอร์มินัล bash ใหม่คุณสามารถเพิ่มบรรทัดต่อไปนี้ใน~/.bashrcไฟล์ของคุณ:

export PATH=<PATH_TO_YOUR_CONDA_ENVIRONMENT/bin>:$PATH

คุณควรแทนที่<PATH_TO_YOUR_CONDA_ENVIRONMENT/bin>ในบรรทัดด้านบนด้วยพา ธ แบบเต็มไปยังสภาพแวดล้อม conda ของคุณ

ในกรณีของคุณคุณสามารถเพิ่มบรรทัดต่อไปนี้ใน~/.bashrcไฟล์ของคุณ:

export PATH=~/anaconda3/envs/myenv/bin:$PATH

โดยทั่วไปเรากำลังเพิ่มbinไดเรกทอรีของสภาพแวดล้อม conda ของคุณเป็นรายการแรกใน PATH ของคุณซึ่งเป็นสิ่งที่activateสคริปต์อำนวยความสะดวกจะทำ หลังจากนี้เมื่อคุณเปิดเทอร์มินัล bash ใหม่สภาพแวดล้อม conda จะ "เปิดใช้งาน" / "เปิดใช้งาน" โดยค่าเริ่มต้น

ทราบว่าคุณอาจไม่เห็นคำนำหน้าพร้อมรับคำทุบตีของคุณเช่นคุณจะถ้าคุณไม่ได้ทำ(myenv) source activate myenvหากคุณต้องการให้ส่วนนำหน้าของพรอมต์ปรากฏขึ้นให้เพิ่มบรรทัดต่อไปนี้ใน~/.bashrcไฟล์ของคุณ:

export PS1="(myenv)"$PS1

ไหน(myenv)เป็นชื่อที่กำหนดเองใด ๆ ที่คุณสามารถให้ที่จะแสดงขึ้นเป็นคำนำหน้าในการทุบตีพรอมต์


สำหรับฉันใช้งานได้ แต่conda info --envsยังคงแสดงrootสภาพแวดล้อมเป็นปัจจุบัน มีเหตุผลใดที่ฉันไม่สามารถเพิ่มได้source activate py34(py34 เป็นชื่อสภาพแวดล้อมของฉัน) ใน ~ / .bashrc ของฉันหรือไม่ ดูเหมือนจะใช้งานได้ แต่มีเหตุผลบางอย่างที่ไม่แนะนำใช่ไหม
BStateham

ตรวจสอบให้แน่ใจว่าPATHตัวแปรชี้ไปที่binโฟลเดอร์ภายใต้โฟลเดอร์ของสภาพแวดล้อม conda ไม่ใช่โฟลเดอร์ base / root bin ตัวอย่างเช่น: ~/anaconda3/envs/myenv/binและไม่~/anaconda3/bin) ใช่ คุณสามารถเพิ่มโฟลเดอร์ bin งูใหญ่ (เช่น .: ~/anaconda3/bin) เพื่อเส้นทางของระบบและจากนั้นsource activate ENV_NAMEในของคุณหรือ~/.bashrc ~/.bash_profileไม่แนะนำเนื่องจากไฟล์กำหนดค่า ( ~/.bashrcหรือ~/.bash_profile) เป็นแหล่งที่มาของตัวเองและไม่ได้ดำเนินการเมื่อเปิดเครื่อง bash ใหม่
Praveen Palanisamy

0

นี่อาจจะอยู่ข้างบน (แต่ฉันเข้าใจผิดก่อน) สิ่งสำคัญคือในไฟล์ bashrc ของคุณคุณจะส่งออกเส้นทางคอนโดของคุณก่อน ดังนั้นเส้นทางไปยัง conda (หรือ miniconda เป็นต้น) จะมาเหนือconda activate <env>เส้น รูปแบบเป็นเช่นนั้น:

export <path to conda bin>

<any other conda initializations>

conda activate <env>


-1

ในการเปิดใช้งานสภาพแวดล้อม conda เพียงแค่ใส่ที่ส่วนท้ายของไฟล์. bashrcของคุณเพื่อเปิด. bashrc open terminal ให้ไปที่โฮมไดเร็กตอรี่ Run / type nano .bashrcที่พร้อมต์ให้ใส่ต่อไปนี้ที่ท้ายไฟล์:

conda activate my_environment_name

ตอนนี้บันทึกไฟล์. bashrc ( Ctrl+ Shift+ o) กด Enter


ในขณะที่ฉันไม่มีผู้เชี่ยวชาญด้านคอนโดฉันสามารถบอกได้ว่าคุณ~$อ้างถึงอะไร แต่~$(ซึ่งไม่ใช่อะไร) ~หรือ$HOMEจะอ้างอิง/home/user/
j-money

ใช่ "~" เป็นสิ่งที่ฉันหมายถึง ดังนั้นเมื่อคุณเห็น ~ $ ในสภาพแวดล้อมที่บ้านของคุณเพียงแค่พยายามที่จะอธิบายเพื่อให้ทุกคนสามารถเข้าใจได้มันน่าเสียดายที่คุณ downvoted เหนือเครื่องหมายดอลลาร์เช่นนี้อาจเป็นประโยชน์สำหรับคำถามที่เกิดขึ้นจริงในมือ ...
Alice

น่าเสียดายสำหรับฉันฉันแสดงความคิดเห็น แต่ไม่ได้ลงคะแนน (ดังนั้นตอนนี้ฉันได้รับผลพวง) .. ในกรณีใด ๆ ที่ทุกคนสามารถเข้าใจ~$เป็นเส้นทางที่ถูกต้องเมื่อมันไม่ได้เป็นเส้นทางได้อย่างไร
j-money

เอา
อลิซ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.