วิธีการเปลี่ยนสภาพแวดล้อมงูใหญ่เริ่มต้น


170

ฉันได้ติดตั้ง Anaconda และสร้างสองสภาพแวดล้อมพิเศษ: py3k (ซึ่งถือ Python 3.3) และ py34 (ซึ่งถือ Python 3.4) นอกจากนั้นฉันมีสภาพแวดล้อมเริ่มต้นที่ชื่อว่า 'รูท' ซึ่งตัวติดตั้งแอนนาคอนดาสร้างขึ้นตามค่าเริ่มต้นและมี Python 2.7 อันสุดท้ายนี้คือค่าเริ่มต้นเมื่อใดก็ตามที่ฉันเปิดตัว 'ipython' จากเครื่องจะให้รุ่น 2.7 เพื่อทำงานกับ Python 3.4 ฉันต้องออกคำสั่ง (ในเชลล์)

source activate py34
ipython

ซึ่งเปลี่ยนสภาพแวดล้อมเริ่มต้นเป็น Python 3.4 มันใช้งานได้ดี แต่ก็น่ารำคาญเพราะส่วนใหญ่ฉันใช้ Python 3.4 แทนที่จะเป็น Python 2.7 (ซึ่งฉันใช้สำหรับการสอนมันเป็นเรื่องที่ค่อนข้างยาว) อย่างไรก็ตามฉันต้องการทราบวิธีการเปลี่ยนสภาพแวดล้อมเริ่มต้นเป็น Python 3.4 โดยคำนึงว่าฉันไม่ต้องการติดตั้งใหม่ทุกอย่างตั้งแต่เริ่มต้น


7
คุณคิดว่าจะใช้source activate py34ในของคุณ.bashrcหรือไม่
cel

1
ขอบคุณสำหรับคำตอบ. ฉันไม่ได้ลองเพราะฉันคิดว่ามันเป็นไปไม่ได้ที่จะเรียกซอร์สเปิดใช้งานจากสคริปต์ทุบตีเนื่องจากคำสั่งซอร์สต้องถูกเรียกใช้ในเชลล์เดียวกันไม่ใช่ใน subshell ฉันได้ลองใส่สองบรรทัดด้านบนลงในสคริปต์ทุบตีและฉันสามารถพูดได้ว่าไม่ได้ผล
2734434

4
ฉันมีCONDA_ROOT="/Users/bla/miniconda"และ source ${CONDA_ROOT}/bin/activate ${CONDA_ROOT}/envs/empty &> /dev/nullในของฉัน.bashrcและดูเหมือนว่าจะทำงานได้ดี
cel

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

3
@ user2734434 ไฟล์ bashrc มีที่มาที่จุดเริ่มต้นของเซสชันดังนั้นหากคุณใส่source activateเข้าไปไฟล์ดังกล่าวจะมีผลต่อสภาพแวดล้อมของเชลล์
asmeurer

คำตอบ:


86

หากคุณต้องการเปลี่ยนเป็นสภาพแวดล้อมอื่นให้ใช้

source activate environment-name

(คุณสามารถสร้างได้environment-nameด้วย `conda create)


โดยปกติแล้วจะเป็นการดีที่สุดเพียงแค่สร้างสภาพแวดล้อมใหม่ อย่างไรก็ตามหากคุณต้องการเปลี่ยนเวอร์ชั่น Python ในสภาพแวดล้อมเริ่มต้นคุณสามารถทำได้ดังนี้:

ขั้นแรกตรวจสอบให้แน่ใจว่าคุณมีเวอร์ชันล่าสุดของ conda โดยเรียกใช้

conda update conda

จากนั้นเรียกใช้

conda install python=3.5

นี่จะพยายามอัปเดตแพ็กเกจทั้งหมดของคุณในสภาพแวดล้อมรูทของคุณเป็นเวอร์ชัน Python 3 หากไม่สามารถทำได้ (เช่นเนื่องจากแพ็คเกจบางตัวไม่ได้สร้างขึ้นสำหรับ Python 3.5) จะมีข้อความแสดงข้อผิดพลาดเพื่อระบุว่าแพ็คเกจใดเป็นสาเหตุของปัญหา

หากคุณติดตั้งแพคเกจด้วย pip คุณจะต้องติดตั้งใหม่


1
@flutefreak จริง ๆ แล้วมันจะทำงานบน Windows ทันที (เรียกใช้conda update condaก่อนเพื่อให้แน่ใจว่าคุณมีรุ่นล่าสุด) ฉันจะอัปเดตคำตอบ
asmeurer

126
คำตอบนี้ดูเหมือนจะไม่เชื่อมต่อกับคำถามซึ่งเกี่ยวกับการเปลี่ยนสภาพแวดล้อมเริ่มต้น
บ๊อบ

16
@asmeurer แต่นั่นไม่ใช่สิ่งที่ถูกถาม เขาไม่ต้องการอัปเดตแพ็คเกจในทุก env เขาต้องการทำให้ py34 เป็นสภาพแวดล้อมเริ่มต้นให้ทำงานโดยไม่มีการแทรกแซงดังนั้น py34 จึงทำงานก่อนที่เขาจะส่งคำสั่ง
บ๊อบ

20
ฉันต้องเห็นด้วยกับ @Bob ที่นี่ แพ็คเกจในสภาพแวดล้อมรากจะได้รับการอัปเดตเป็น 3.5 และอาจแก้ไขปัญหาเฉพาะของผู้โพสต์ดั้งเดิมได้ แต่เมื่อคุณเปิดพรอมต์คุณจะยังคงอยู่ในสภาพแวดล้อมรากดังนั้นคุณจึงไม่ได้ระบุสภาพแวดล้อมเริ่มต้นอื่น เนื่องจากทุกคนที่ต้องการบรรลุเป้าหมายและ googles เป็นคำถามนี้จะดีกว่าหากตอบคำถามเดิมด้วย บางทีการเปลี่ยนค่าเริ่มต้น env เป็นอย่างอื่นนอกเหนือจากรูทเป็นไปไม่ได้เหรอ?
arjan

4
มันไม่ได้ผลสำหรับฉัน เริ่มต้นของฉันคืองูหลาม 3.4 การใช้ธงpython=3.5ไม่ได้อัพเกรดงูหลามจาก 3.4 เป็น 3.5 ... คำแนะนำใด ๆ ?
WillZ

56

ภาพรวม
บางคนมีสภาพแวดล้อมแบบอนาคอนดาหลายแห่งพร้อมกับงูหลามรุ่นต่าง ๆ เพื่อเหตุผลด้านความเข้ากันได้ ในกรณีนี้คุณควรมีสคริปต์ที่ตั้งค่าสภาพแวดล้อมเริ่มต้นของคุณ ด้วยวิธีนี้คุณสามารถรักษาเวอร์ชันของ python ที่คุณใช้ในสภาพแวดล้อมของคุณ

ต่อไปนี้จะถือว่าenvironment_nameเป็นชื่อของสภาพแวดล้อมของคุณ

Mac / Linux:แก้ไขรายละเอียดทุบตีของคุณเพื่อให้บรรทัดสุดท้ายคือ
source activate environment_nameใน Mac OSX นี่คือ ~ / .bash_profile ในสภาพแวดล้อมอื่นอาจเป็น ~ / .bashrc

ตัวอย่าง:
นี่เป็นวิธีที่ฉันทำบน Mac OSX

  1. เปิด Terminal และประเภท:

    nano ~/.bash_profile

  2. ไปที่จุดสิ้นสุดไฟล์และพิมพ์ข้อความต่อไปนี้โดยที่ "p3.5" คือสภาพแวดล้อมของฉัน:

    source activate p3.5

  3. ออกจากไฟล์ เริ่มหน้าต่างเทอร์มินัลใหม่

  4. พิมพ์ข้อความต่อไปนี้เพื่อดูว่าสภาพแวดล้อมใดที่ทำงานอยู่

    conda info -e

ผลลัพธ์แสดงว่าฉันใช้สภาพแวดล้อม p3.5 ตามค่าเริ่มต้น

สำหรับ Windows:
สร้างไฟล์คำสั่ง (.cmd) ด้วยactivate environment_nameและทำตามคำแนะนำเหล่านี้เพื่อเรียกใช้งานทุกครั้งที่คุณเปิดพรอมต์คำสั่ง

  1. สร้างคำสั่งแบตช์ไฟล์เช่น "my_conda.cmd" วางไว้ในโฟลเดอร์ Application Data
  2. cmdกำหนดค่าให้เริ่มต้นโดยอัตโนมัติเมื่อคุณเปิด การตั้งค่านี้อยู่ในรีจิสทรี:
    คีย์:
    ค่าตัวประมวลผล HKCU \ SOFTWARE \ Microsoft \ Command :
    ประเภทการทำงานอัตโนมัติ:
    ข้อมูลREG_EXPAND_SZ : "% AppData% \ my_conda.cmd"

จากคำตอบนี้: https://superuser.com/a/302553/143794


1
ขอบคุณมาก. ฉันพบว่าด้วย Mac เวอร์ชันของฉันฉันไม่สามารถกำจัด Python 2 ได้ดังนั้นจึงควรดำเนินการตามคำแนะนำเพื่อตั้งค่าสภาพแวดล้อมที่แยกจากกันสองแห่ง มันใช้งานได้!
Livvy Jeffs

นำไปสู่ท่อแตกและคำสั่งแช่แข็งพร้อมท์นี้เมื่อฉันทำเช่นนี้ภายใต้ Windows 10
aaronsnoswell

มีใครใน Windows 10 ที่โชคดีกว่านี้?
Wassadamo

3
นี่ควรเป็นคำตอบที่ได้รับการยอมรับ (อย่างน้อยก็สำหรับ Conda ที่ใช้ยูนิกซ์)!
Simon Van Machin

50

ภายใต้ Linux มีวิธีที่ง่ายกว่าในการตั้งค่าสภาพแวดล้อมเริ่มต้นด้วยการแก้ไข~/.bashrcหรือ~/.bash_profile ในตอนท้ายคุณจะพบสิ่งที่ต้องการ

# added by Anaconda 2.1.0 installer
export PATH="~/anaconda/bin:$PATH"

แทนที่ด้วย

# set python3 as default
export PATH="~/anaconda/envs/python3/bin:$PATH"

และนั่นคือทั้งหมดที่มีให้มัน


3
และคำถามคืออะไร
Dieter Meemken

ฉันลองใช้วิธีแก้ปัญหานี้ แต่มันยังแสดง anaconda2 บนเส้นทางของฉันความคิดใด ๆ
William Ross

10
สิ่งนี้ไม่ได้ตั้งค่าสภาพแวดล้อมเริ่มต้น ดูเหมือนว่าจะหลีกเลี่ยง conda และทำให้คิดว่า "python3" เป็นค่าเริ่มต้น "conda info -e" ยังคงแสดง "root" เป็นสภาพแวดล้อมปัจจุบัน ฉันยังคงมองหาวิธีที่จะบอก conda ซึ่งเป็นค่าเริ่มต้น
MrMas

8
สิ่งนี้ไม่ได้ตั้งค่าสภาพแวดล้อมเริ่มต้นจากมุมมองของ conda ดูเหมือนว่าจะหลีกเลี่ยง conda และทำให้คิดว่า "python3" เป็นค่าเริ่มต้น "conda info -e" ยังคงแสดง "root" เป็นสภาพแวดล้อมปัจจุบัน ในการแก้ไขปัญหานี้คุณต้องตั้งค่า CONDA_PREFIX และ CONDA_DEFAULT_ENV ด้วย ถึงกระนั้นคำตอบก็ยังคงเป็นการแฮ็ก เหตุใดจึงไม่เรียกใช้เพียง 'เปิดใช้งานแหล่งที่มา <สภาพแวดล้อมเริ่มต้นใหม่>' เนื่องจากมีให้กับ conda เป็นวิธี "ในตัว" เพื่อให้บรรลุสิ่งนี้
MrMas

มี.bashrcหรือ.bash_profileบน Windows 10 หรือไม่ ฉันพบหนึ่งภายใต้ cygwin ขณะที่ติดตามjattenberg.github.io/PDS-Fall-2013/assets/install/นี้ แต่ฉันไม่แน่ใจว่าเป็นสิ่งที่ฉันควรเปลี่ยนเพื่อให้ได้ฟังก์ชั่นการใช้งานที่ต้องการของ OP
Wassadamo

14

สำหรับ windows Anaconda มาพร้อมกับ Anaconda Prompt ซึ่งเป็นทางลัดไปยัง cmd และสามารถใช้เรียกใช้คำสั่ง conda โดยไม่ต้องเพิ่ม anaconda ในตัวแปร PATH ค้นหาตำแหน่งของมันคัดลอกและเปลี่ยนชื่อสำเนา (พูด myenv_prompt) คลิกขวา myenv_prompt และเลือกคุณสมบัติในเมนูบริบท

ป้อนคำอธิบายรูปภาพที่นี่

รูปแบบเป้าหมายของหน้าต่างคุณสมบัติแล้วควรจะเต็มไปด้วยข้อความบางอย่างเช่น%windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\ มีสามส่วนของคำสั่งนี้ 1) เริ่มต้น ... \ cmd.exe 2) การทำงานเป็น ... \ acitvate.bat กับสภาพแวดล้อม 3) ... \ Miniconda3 \

เปลี่ยนส่วนที่ 3 เป็นเส้นทางของสภาพแวดล้อม (พูด myenv) ที่คุณต้องการเป็นค่าเริ่มต้นเช่นกรอกแบบฟอร์มเป้าหมายเช่น%windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\envs\myenv

ตอนนี้ myenv_prompt จะทำหน้าที่เป็นทางลัดเพื่อเริ่ม cmd ด้วย myenv เป็นสภาพแวดล้อมเริ่มต้นสำหรับ python ทางลัดนี้คุณสามารถเก็บไว้ในเมนูเริ่มหรือตรึงในทาสก์บาร์

ข้อดีอย่างหนึ่งของวิธีนี้คือคุณสามารถสร้างทางลัดสองสามอันแต่ละอันมีสภาพแวดล้อมที่แตกต่างกันเป็นสภาพแวดล้อมเริ่มต้น นอกจากนี้คุณสามารถตั้งค่าโฟลเดอร์เริ่มต้นโดยการกรอกเริ่มต้นรูปแบบของหน้าต่างคุณสมบัติ

หวังว่านี่จะช่วยได้

PS: ไม่จำเป็นต้องค้นหา Anaconda Prompt และสามารถทำได้โดยเปลี่ยนเป้าหมายของทางลัดใด ๆ แต่คุณจะต้องรู้เส้นทางของ cmd.exe และ enable.bat


2
นี่ควรเป็นคำตอบที่ดีที่สุด
James McCormac

ฉันใช้วิธีนี้ แต่ส่วนแรกของฉันแตกต่างกันเล็กน้อย: C:\Windows\System32\cmd.exe /c start ""ไม่แน่ใจว่าฉันมาถึงวิธีการแก้ปัญหาได้อย่างไร แต่นี่เป็นบทความที่ฉันทำเกี่ยวกับไวยากรณ์
xtian

8

เปลี่ยนแบบถาวร

conda install python={version}

เปลี่ยนชั่วคราว

ดูสภาพแวดล้อมของคุณ

วิ่ง conda info --envsบนหน้าต่างเทอร์มินัลของคุณหรือ Anconda Prompt

หากไม่แสดงสภาพแวดล้อมที่คุณต้องการติดตั้ง

รันconda create -n py36 python=3.6 anacondapython 3.6 เปลี่ยนเวอร์ชั่นได้ตามต้องการ

การเปิดใช้งานสภาพแวดล้อม (ใช้พรอมต์ Anaconda)

เรียกใช้activate envnmeenvnme คุณสามารถค้นหาโดยคำสั่งนี้conda info --envsเป็นตัวอย่างเมื่อคุณเรียกใช้conda info --envsแสดง

base * C:\Users\DulangaHeshan\Anaconda3 py36 C:\Users\DulangaHeshan\Anaconda3\envs\py36

จากนั้นเรียกใช้ activate py36

เพื่อตรวจสอบการทำงาน python --version

ใน Windows เป็นวิธีปฏิบัติที่ดีในการปิดใช้งานสภาพแวดล้อมหนึ่งก่อนเปิดใช้งานสภาพแวดล้อมอื่น https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?highlight=deactivate%20environment


3
ฉันคิดว่า OP ต้องการโซลูชันที่เปลี่ยนสภาพแวดล้อมพื้นฐานเป็น py36 ดังนั้นพวกเขาจึงไม่ต้องเรียกใช้activate py36ทุกครั้งที่เริ่มต้น
Wassadamo

6

คำตอบที่ถูกต้อง (ณ เดือนธันวาคม 2018) คือ ... คุณทำไม่ได้ การอัปเกรดconda install python=3.6อาจใช้งานได้ แต่อาจไม่ได้หากคุณมีแพ็คเกจที่จำเป็น แต่ไม่สามารถถอนการติดตั้งได้

Anaconda ใช้สภาพแวดล้อมเริ่มต้นที่มีชื่อbaseและคุณไม่สามารถสร้างสภาพแวดล้อมใหม่ (เช่น python 3.6) ด้วยชื่อเดียวกัน นี่คือเจตนา หากคุณต้องการให้ฐาน Anaconda ของคุณเป็น python 3.6 วิธีที่ถูกต้องในการทำเช่นนี้คือติดตั้ง Anaconda สำหรับ python 3.6 ในฐานะผู้จัดการแพคเกจเป้าหมายของอนาคอนด้าคือการสร้างสภาพแวดล้อมที่แตกต่างกันดังนั้นทำไมคุณต้องเปิดใช้งานแหล่งข้อมูลเหล่านั้นและทำไมคุณไม่สามารถสลับแพคเกจฐานอย่างเงียบ ๆ เพราะจะทำให้เกิดปัญหามากมายในระบบการผลิต


จะเกิดอะไรขึ้นถ้าสภาพแวดล้อมพื้นฐานของฉันเสียและฉันต้องการแทนที่ด้วยสภาพแวดล้อมที่ใช้งานได้
endolith

@endolith จะเกิดอะไรขึ้นถ้าสภาพแวดล้อมพื้นฐานของฉันเสียและฉันต้องการแทนที่ด้วยสภาพแวดล้อมที่ใช้งานได้ ติดตั้ง Conda อีกครั้ง
AMC

@AMC ฉันได้ติดตั้งใหม่หลายครั้ง ฉันต้องการวิธีการกู้คืนสถานะที่ดีโดยไม่ต้องทำซ้ำทุกอย่าง
endolith

1
@endolith คุณได้ติดตั้งใหม่หลายครั้งเพื่อแก้ไขปัญหาที่แน่นอนหรือไม่ มันพังได้อย่างไร เราควรที่จะหารือเกี่ยวกับที่อื่น ๆ นี้ผมสร้างห้องแชท
AMC

1

ฉันไม่พอใจกับคำตอบใด ๆ ที่นำเสนอที่นี่เนื่องจากการเปิดใช้งานสภาพแวดล้อมใช้เวลาสองสามวินาทีบนแพลตฟอร์มของฉัน (ไม่ว่าด้วยเหตุผลใดก็ตาม)

ฉันแก้ไขตัวแปรพา ธ ของฉันเพื่อให้สภาพแวดล้อมที่ฉันต้องการเป็นค่าเริ่มต้นมีลำดับความสำคัญสูงกว่าค่าเริ่มต้นจริง

ในกรณีของฉันฉันใช้คำสั่งต่อไปนี้เพื่อให้สำเร็จสำหรับสภาพแวดล้อม "py35":

setx PATH "%userprofile%\Anaconda3\envs\py35\;%PATH%"
setx PATH "%userprofile%\Anaconda3\envs\py35\Scripts;%PATH%"

where pythonเพื่อหาที่สภาพแวดล้อมของคุณจะถูกเก็บไว้ใช้งานและป้อน ฉันยังไม่แน่ใจว่าวิธีการนี้มีข้อเสียหรือไม่ เนื่องจากมันยังเปลี่ยนเส้นทางเริ่มต้นของ conda ที่ปฏิบัติการได้ หากเป็นเช่นนั้นโปรดแสดงความคิดเห็น


1

ฉันได้รับสิ่งนี้เมื่อติดตั้งห้องสมุดโดยใช้อนาคอนดา เวอร์ชันของฉันเปลี่ยนจาก Python 3 เป็น 2.7 และสิ่งต่างๆมากมายของฉันหยุดทำงาน ทางออกที่ดีที่สุดที่ฉันพบคือการเห็นเวอร์ชันล่าสุดที่มีอยู่เป็นครั้งแรก:

conda search python

จากนั้นอัปเดตเป็นเวอร์ชันที่คุณต้องการ:

conda install python=3.*.*

ที่มา: http://chris35wills.github.io/conda_python_version/

คำสั่งที่เป็นประโยชน์อื่น ๆ :

conda info
python --version

เวอร์ชันของฉันเปลี่ยนจาก Python 3 เป็น 2.7 และสิ่งต่างๆมากมายของฉันหยุดทำงาน เว้นแต่ฉันจะทำบางสิ่งบางอย่างหายไปสิ่งนี้จะไม่เกี่ยวข้องกับคำถามและสิ่งที่อธิบายไว้ใน OP
AMC

0

สร้างทางลัดของแอนาคอนดาพรอมต์ลงบนเดสก์ท็อปหรือทาสก์บาร์จากนั้นในคุณสมบัติของทางลัดนั้นต้องแน่ใจว่าคุณได้ปรับเปลี่ยนเส้นทางสุดท้ายใน "เป้าหมาย:" ไปยังเส้นทางของสภาพแวดล้อมของคุณ:

C: \ Users \ BenBouali \ Anaconda3 \ จะเปลี่ยนเป็น C: \ Users \ BenBouali \ Anaconda3 \ envs \ tensorflow-gpu

ภาพตัวอย่าง

และวิธีนี้คุณสามารถใช้ทางลัดนั้นเพื่อเปิดสภาพแวดล้อมบางอย่างเมื่อคลิกคุณสามารถเพิ่มทางลัดไปยังเส้นทางของคุณได้และตอนนี้คุณจะสามารถเรียกใช้จากกล่องเรียกใช้ windows โดยเพียงพิมพ์ชื่อของทางลัด


0

บน Windows สร้างแบตช์ไฟล์ด้วยบรรทัดต่อไปนี้:

start cmd /k "C:\Anaconda3\Scripts\activate.bat C:\Anaconda3 & activate env"

พา ธ แรกที่อยู่ในเครื่องหมายคำพูดคือพา ธ ไปยังไฟล์ enable.bat ในการติดตั้ง Anaconda เส้นทางในระบบของคุณอาจแตกต่างกัน ชื่อต่อไปนี้คำสั่งเปิดใช้งานแน่นอนควรเป็นชื่อสภาพแวดล้อมที่คุณต้องการ

จากนั้นรันไฟล์แบตช์เมื่อคุณต้องการเปิดพรอมต์แอนาคอนดา


0

โหลดสภาพแวดล้อม "ฐาน" ของคุณ - ในฐานะของ OP py34- เมื่อคุณโหลดเทอร์มินัล / เชลล์

หากคุณใช้ Bash ให้วางบรรทัด:

conda activate py34

ใน.bash_profile(หรือ.bashrc) ของคุณ:

$ echo 'conda activate py34' >> ~/.bash_profile

ทุกครั้งที่คุณเรียกใช้เทอร์มินัลใหม่สภาพแวดล้อม conda py34จะถูกโหลด

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