ฉันจะอัพเกรดเป็น Python 3.6 ด้วย conda ได้อย่างไร


172

ฉันใหม่สำหรับการจัดการแพ็คเกจ Conda และฉันต้องการรับ Python เวอร์ชันล่าสุดเพื่อใช้ f-strings ในรหัสของฉัน ปัจจุบันเวอร์ชันของฉันคือ ( python -V):

Python 3.5.2 :: Anaconda 4.2.0 (x86_64)

ฉันจะอัพเกรดเป็น Python 3.6 ได้อย่างไร


ฉันคิดว่าคำตอบที่สองคือคำตอบที่ดีกว่าโดยเฉพาะอย่างยิ่งสำหรับผู้ที่มีสภาพแวดล้อม "หลัก" / "เริ่มต้น" ซึ่งมีการอัปเดตล่าสุดและยิ่งใหญ่ที่สุดอย่างต่อเนื่อง
ericmjl

คำตอบ:


249

อนาคอนด้ายังไม่ได้ปรับปรุงไพ ธ อนภายในเป็น 3.6

a) วิธีที่ 1

  1. หากคุณต้องการอัปเดตคุณจะพิมพ์ conda update python
  2. เพื่ออัปเดตประเภทอนาคอนดา conda update anaconda
  3. หากคุณต้องการอัพเกรดระหว่างเวอร์ชันไพ ธ อนขนาดใหญ่เช่น 3.5 เป็น 3.6 คุณจะต้องทำ

    conda install python=$pythonversion$

b) วิธีที่ 2 - สร้างสภาพแวดล้อมใหม่ (วิธีที่ดีกว่า)

conda create --name py36 python=3.6

c) เพื่อรับ python ล่าสุดที่สมบูรณ์ (3.6.5 ณ เวลาที่เขียน)

conda create --name py365 python=3.6.5 --channel conda-forge

คุณสามารถดูทั้งหมดนี้ได้จากที่นี่

โปรดอ้างถึงสิ่งนี้สำหรับการอัพเกรดด้วยกำลัง

แก้ไข: ตอนนี้มีงูหลาม 3.6 รุ่นที่นี่


18
นอกจากว่าจะมีการเปลี่ยนแปลงอย่างต่อเนื่องในการทำงานของ conda คุณไม่สามารถอัพเกรด Python เวอร์ชันหลักconda update pythonได้ ดูที่นี่: conda.pydata.org/docs/py2or3.html#update-or-upgrade-python
darthbith

14
conda install python = $ pythonversion $ เช่น conda install python = 3.6
ทิมริชาร์ดสัน

11
conda update pythonเพิ่งพาฉันจาก 3.6.5 ถึง 3.7.0 เรียบร้อย!
fredrik

มีการพิมพ์ผิดในคำตอบวิธีที่ 1.3 มันควรจะconda install python=$pythonversion$มีเครื่องหมายเท่ากับเดียว
eze1981

วิธี FYI a) ทำงานเพื่อเปลี่ยนระหว่างงูหลามรุ่นต่าง ๆ เช่นกันตราบใดที่มันไม่ทำลายการพึ่งพาใด ๆ ใน venv
Spcogg วินาที

41

การสร้างสภาพแวดล้อมใหม่จะติดตั้ง python 3.6:

$ conda create --name 3point6 python=3.6
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment /Users/dstansby/miniconda3/envs/3point6:

The following NEW packages will be INSTALLED:

    openssl:    1.0.2j-0     
    pip:        9.0.1-py36_1 
    python:     3.6.0-0      
    readline:   6.2-2        
    setuptools: 27.2.0-py36_0
    sqlite:     3.13.0-0     
    tk:         8.5.18-0     
    wheel:      0.29.0-py36_0
    xz:         5.2.2-1      
    zlib:       1.2.8-3 

2
หากการติดตั้ง conda ของคุณใช้กับ Python 2.7 แล้ว conda create จะสร้างเวอร์ชั่น 2.7 ขึ้นมา การเปลี่ยนคำสั่งเป็นconda create --name 3point6 python=3(เพิ่ม=3ที่ส่วนท้าย) ทำให้เป็นเวอร์ชั่นของ python3
โยนาห์เกรแฮม

1
มันจะแน่นอน ฉันเปลี่ยนคำตอบเพื่อระบุ python 3.6 แล้ว!
David Stansby

26

ฉันพบหน้านี้พร้อมคำแนะนำโดยละเอียดเพื่ออัปเกรด Anaconda เป็น Python เวอร์ชั่นใหม่ที่สำคัญกว่า (จาก Anaconda 4.0+) ครั้งแรก

conda update conda
conda remove argcomplete conda-manager

ฉันยังต้องconda removeแพคเกจบางอย่างไม่อยู่ในรายการอย่างเป็นทางการ:

  • backports_abc
  • สวยซุป
  • Blaze-core

คุณอาจได้รับUnsatisfiableErrorข้อผิดพลาดเพิ่มเติม- เพียงเพิ่มแพ็คเกจเหล่านั้นในรายการลบทั้งนี้ขึ้นอยู่กับแพ็คเกจที่ติดตั้งในระบบของคุณ ถัดไปติดตั้งเวอร์ชันของ Python

conda install python==3.6

ซึ่งใช้เวลาสักครู่หลังจากที่มีข้อความระบุไว้conda install anaconda-clientฉันก็เลยทำ

conda install anaconda-client

ซึ่งบอกว่ามันมีอยู่แล้ว ในที่สุดก็ทำตามคำแนะนำ

conda update anaconda

ฉันทำสิ่งนี้ในพรอมต์คำสั่งของ Windows 10 แต่สิ่งต่าง ๆ ควรคล้ายกันใน Mac OS X


18

ในอดีตฉันพบว่ามันค่อนข้างยากที่จะพยายามอัปเกรดแบบแทนที่

หมายเหตุ: กรณีใช้งานของฉันสำหรับ Anaconda เป็นสภาพแวดล้อม Python แบบ all-in-one ฉันไม่ได้กังวลกับสภาพแวดล้อมเสมือนจริงที่แยกจากกัน หากคุณใช้condaเพื่อสร้างสภาพแวดล้อมสิ่งนี้อาจเป็นอันตรายเนื่องจากcondaสร้างสภาพแวดล้อมที่มีการเชื่อมโยงอย่างหนักภายในAnaconda/envsไดเรกทอรีของคุณ

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

conda env export > environment.yml

หลังจากสำรองสภาพแวดล้อมของคุณ (ถ้าจำเป็น) คุณสามารถลบ Anaconda เก่าของคุณ (มันง่ายมากที่จะถอนการติดตั้ง Anaconda):

$ rm -rf ~/anaconda3/

และแทนที่ด้วยการดาวน์โหลด Anaconda ใหม่เช่น Linux, 64 บิต:

$ cd ~/Downloads
$ wget https://repo.continuum.io/archive/Anaconda3-4.3.0-Linux-x86_64.sh 

( ดูที่นี่เพื่อดูข้อมูลล่าสุด )

จากนั้นดำเนินการ:

$ bash Anaconda3-4.3.0-Linux-x86_64.sh 

11

ฉันใช้Mac OS Mojave

4 ขั้นตอนเหล่านี้ทำงานสำหรับฉัน

  1. conda update conda
  2. conda install python=3.6
  3. conda install anaconda-client
  4. conda update anaconda

0

วิธีที่ดีที่สุดที่ฉันพบ:

source activate old_env
conda env export > old_env.yml

จากนั้นประมวลผลด้วยสิ่งนี้:

with open('old_env.yml', 'r') as fin, open('new_env.yml', 'w') as fout:
    for line in fin:
        if 'py35' in line:  # replace by the version you want to supersede
            line = line[:line.rfind('=')] + '\n'
        fout.write(line)

จากนั้นแก้ไขด้วยตนเองname: ...บรรทัดแรก ( ) และบรรทัดสุดท้าย ( prefix: ...) เพื่อแสดงชื่อสภาพแวดล้อมใหม่ของคุณและเรียกใช้:

conda env create -f new_env.yml

คุณอาจจำเป็นต้องลบหรือเปลี่ยน pin เวอร์ชันของแพ็กเกจสองสามแบบด้วยตนเองซึ่งold_envพบว่าเวอร์ชันที่ยึดหมุดไว้นั้นเข้ากันไม่ได้หรือขาดหายไปสำหรับเวอร์ชัน Python ใหม่

ฉันหวังว่าจะมีในตัววิธีที่ง่ายขึ้น ...

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