Làm cách nào để nâng cấp lên Python 3.6 bằng conda?


171

Tôi mới sử dụng quản lý gói Conda và tôi muốn có phiên bản Python mới nhất để sử dụng chuỗi f trong mã của mình. Hiện tại phiên bản của tôi là ( python -V):

Python 3.5.2 :: Anaconda 4.2.0 (x86_64)

Làm cách nào để nâng cấp lên Python 3.6?


Câu trả lời thứ hai là, tôi nghĩ, câu trả lời tốt hơn, đặc biệt là đối với những người có môi trường "chính" / "mặc định" trong đó mới nhất và tốt nhất được cập nhật liên tục.
ericmjl

Câu trả lời:


248

Anaconda chưa cập nhật python trong nội bộ lên 3.6.

a) Phương pháp 1

  1. Nếu bạn muốn cập nhật, bạn sẽ gõ conda update python
  2. Để cập nhật loại anaconda conda update anaconda
  3. Nếu bạn muốn nâng cấp giữa phiên bản python lớn như 3.5 lên 3.6, bạn sẽ phải làm

    conda install python=$pythonversion$

b) Phương pháp 2 - Tạo môi trường mới (Phương pháp tốt hơn)

conda create --name py36 python=3.6

c) Để có được con trăn mới nhất tuyệt đối (3.6.5 tại thời điểm viết)

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

Bạn có thể thấy tất cả điều này từ đây

Ngoài ra, tham khảo điều này để nâng cấp lực lượng

EDIT: Anaconda hiện có phiên bản Python 3.6 tại đây


18
Trừ khi Continuum đã thay đổi cách thức hoạt động của conda, bạn không thể nâng cấp các phiên bản Python chính bằng cách conda update python. Xem tại đây: conda.pydata.org/docs/py2or3.html#update-or-upTHER-python
darthbith

14
conda cài đặt python = $ pythonversion $ ví dụ: cài đặt conda python = 3.6
Tim Richardson

11
conda update pythonchỉ đưa tôi từ 3.6.5 đến 3.7.0. Khéo léo!
fredrik

Có một lỗi đánh máy trong câu trả lời, Phương pháp 1.3. Nó sẽ được conda install python=$pythonversion$với một dấu bằng duy nhất.
eze1981

Phương pháp FYI a) cũng hoạt động để thay đổi giữa các phiên bản khác nhau của trăn, miễn là nó không phá vỡ bất kỳ sự phụ thuộc nào trong venv
Spcogg vào thứ hai

41

Tạo một môi trường mới sẽ cài đặt 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
Nếu cài đặt conda của bạn là dành cho Python 2.7 thì conda tạo sẽ tạo phiên bản 2.7. thay đổi lệnh thành conda create --name 3point6 python=3(thêm =3vào cuối) tạo thành phiên bản python3.
Jonah Graham

1
Nó thực sự sẽ. Tôi đã thay đổi câu trả lời của mình để chỉ định python 3.6!
David Stansby

25

Tôi tìm thấy trang này với các hướng dẫn chi tiết để nâng cấp Anaconda lên phiên bản chính mới hơn của Python (từ Anaconda 4.0+). Đầu tiên,

conda update conda
conda remove argcomplete conda-manager

Tôi cũng đã phải conda removemột số gói không có trong danh sách chính thức:

  • backports_abc
  • súp đẹp
  • lõi lửa

Tùy thuộc vào các gói được cài đặt trên hệ thống của bạn, bạn có thể gặp thêm UnsatisfiableErrorlỗi - chỉ cần thêm các gói đó vào danh sách xóa. Tiếp theo, cài đặt phiên bản Python,

conda install python==3.6

phải mất một lúc, sau đó một tin nhắn được chỉ ra conda install anaconda-client, vì vậy tôi đã làm

conda install anaconda-client

Điều đó nói rằng nó đã ở đó. Cuối cùng, làm theo chỉ dẫn,

conda update anaconda

Tôi đã làm điều này trong dấu nhắc lệnh của Windows 10, nhưng mọi thứ sẽ tương tự trong Mac OS X.


18

Trước đây, tôi thấy khá khó khăn để thử nâng cấp tại chỗ.

Lưu ý: trường hợp sử dụng của tôi cho Anaconda là môi trường Python tất cả trong một. Tôi không bận tâm với các môi trường ảo riêng biệt. Nếu bạn đang sử dụng condađể tạo môi trường, điều này có thể phá hủy vì condatạo ra các môi trường có liên kết cứng trong Anaconda/envsthư mục của bạn .

Vì vậy, nếu bạn sử dụng môi trường, trước tiên bạn có thể muốn xuất môi trường của mình . Sau khi kích hoạt môi trường của bạn, hãy làm một cái gì đó như:

conda env export > environment.yml

Sau khi sao lưu môi trường của bạn (nếu cần), bạn có thể xóa Anaconda cũ của mình (rất đơn giản để gỡ cài đặt Anaconda):

$ rm -rf ~/anaconda3/

và thay thế nó bằng cách tải xuống Anaconda mới, ví dụ Linux, 64 bit:

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

( xem ở đây để biết thêm một cái gần đây ),

và sau đó thực hiện nó:

$ bash Anaconda3-4.3.0-Linux-x86_64.sh 

11

Tôi đang sử dụng Mac OS Mojave

4 bước này làm việc cho tôi.

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

0

Phương pháp tốt nhất tôi tìm thấy:

source activate old_env
conda env export > old_env.yml

Sau đó xử lý nó với một cái gì đó như thế này:

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)

sau đó chỉnh sửa thủ công dòng đầu tiên ( name: ...) và dòng cuối ( prefix: ...) để phản ánh tên môi trường mới của bạn và chạy:

conda env create -f new_env.yml

bạn có thể cần phải xóa hoặc thay đổi thủ công mã pin phiên bản của một vài gói mà phiên bản được ghim từ đó old_envkhông tương thích hoặc bị thiếu cho phiên bản python mới.

Tôi ước có một cách tích hợp, dễ dàng hơn ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.