2015-02-10 45 views
91

Tôi đã cài đặt Anaconda và tạo thêm hai môi trường: py3k (giữ Python 3.3) và py34 (giữ Python 3.4). Bên cạnh đó, tôi có một môi trường mặc định có tên 'root' mà trình cài đặt Anaconda được tạo theo mặc định và có chứa Python 2.7. Điều cuối cùng này là mặc định, bất cứ khi nào tôi khởi chạy 'ipython' từ thiết bị đầu cuối, nó mang lại cho tôi phiên bản 2.7. Để làm việc với Python 3.4, tôi cần phát hành các lệnh (trong shell)Cách thay đổi môi trường trăn Anaconda mặc định

source activate py34 
ipython 

thay đổi môi trường mặc định thành Python 3.4. Điều này làm việc tốt, nhưng nó gây phiền nhiễu vì hầu hết thời gian tôi làm việc trên Python 3.4, thay vì Python 2.7 (mà tôi giữ cho mục đích giảng dạy, đó là một câu chuyện khá dài). Dù sao, tôi sẽ muốn biết làm thế nào để thay đổi môi trường mặc định cho Python 3.4, nhớ rằng tôi không muốn cài đặt lại mọi thứ từ đầu.

+2

bạn đã xem xét sử dụng 'kích hoạt nguồn py34' trong' .bashrc' của mình chưa? – cel

+1

Cảm ơn câu trả lời của bạn. Tôi đã không thử nó bởi vì tôi nghĩ rằng nó không thể gọi nguồn kích hoạt từ một kịch bản bash, như lệnh nguồn cần phải được chạy trong cùng một vỏ, không phải trong một subshell. Tôi đã thử đặt hai dòng trên vào một tập lệnh bash, và rằng tôi có thể nói không hoạt động. – user2734434

+2

Tôi có 'CONDA_ROOT ="/Người dùng/bla/miniconda "' và 'nguồn $ {CONDA_ROOT}/bin/kích hoạt $ {CONDA_ROOT}/envs/empty &>/dev/null' trong' .bashrc' của tôi và nó dường như làm việc tốt. – cel

Trả lời

52

Trước tiên, hãy chắc chắn rằng bạn có phiên bản mới nhất của conda bằng cách chạy

conda update conda 

Sau đó chạy

conda install python=3.5 

này sẽ cố gắng cập nhật tất cả các gói của bạn trong môi trường gốc của bạn để Python 3 phiên bản. Nếu không thể (ví dụ: vì một số gói không được xây dựng cho Python 3.5), nó sẽ cung cấp cho bạn thông báo lỗi cho biết (các) gói nào gây ra sự cố.

Nếu bạn đã cài đặt các gói bằng pip, bạn sẽ phải cài đặt lại chúng.

+0

Vì vậy, nếu tôi muốn cập nhật môi trường gốc của tôi từ python 3.4 đến 3.5, tôi có thể thực hiện 'conda install anaconda python = 3.5'? Tôi đang trên Windows và tôi cũng có một số pip và các gói khác trong đó là tốt. Khi bạn nói "mục cuối cùng sẽ không hoạt động trong Windows", bạn có đang đề cập đến tùy chọn '--clone' hoặc dấu đầu dòng thứ 4 của bạn không? – flutefreak7

+1

@ flutefreak Nó thực sự sẽ hoạt động trên Windows ngay bây giờ (chạy 'conda update conda' trước để đảm bảo bạn có phiên bản mới nhất). Tôi sẽ cập nhật câu trả lời. – asmeurer

+0

Vâng 'conda update conda' trở nên cần thiết để giải quyết một vấn đề khác mà tôi đã ghi lại [ở đây] (https://github.com/ContinuumIO/menuinst/issues/16). Tôi thực sự đã làm 'conda cập nhật conda python = 3.5' ​​cập nhật conda và python, sau đó 'conda update anaconda' chọn thay đổi Python 3.5 và cập nhật anaconda cho phù hợp. Không chắc chắn nếu trật tự quan trọng, nhưng đó là những gì làm việc cho tôi. – flutefreak7

31

Dưới Linux có một cách dễ dàng hơn để thiết lập môi trường mặc định bằng cách thay đổi ~/.bashrc hay ~/.bash_profile Cuối cùng bạn sẽ tìm thấy một cái gì đó giống như

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

Thay thế nó với

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

và thats Tất cả chỉ có thế.

+1

Và câu hỏi là gì? –

+0

Jev, xin lỗi vì bỏ phiếu xuống, đó là một tai nạn, nếu bạn thực hiện bất kỳ chỉnh sửa nào cho câu trả lời của tôi, tôi sẽ có thể thay đổi phiếu bầu ngẫu nhiên của tôi thành một phiếu bầu, tôi thực sự thấy điều này hữu ích. –

+0

Tôi đã thử giải pháp này, nhưng nó vẫn cho thấy anaconda2 trên con đường của tôi, bất kỳ ý tưởng? –

22

Tổng quan
Một số người có nhiều môi trường Anaconda với các phiên bản python khác nhau vì lý do tương thích. Trong trường hợp này, bạn nên có một tập lệnh đặt môi trường mặc định của bạn. Với phương pháp này, bạn có thể bảo toàn các phiên bản của python mà bạn sử dụng trong môi trường của mình.

Sau đây giả định environment_name là tên của môi trường của bạn

Mac/Linux:
Edit profile bash của bạn để dòng cuối cùng là "nguồn kích hoạt environment_name". Trong Mac OSX này là ~/.bash_profile, trong các môi trường khác này có thể là ~/.bashrc

Ví dụ:
Đây là cách tôi đã làm nó trên Mac OSX

  1. Mở Terminal và gõ:

    nano ~ /.bash_profile

  2. Đến kết thúc của tập tin và gõ như sau, trong đó "P3.5" là môi trường của tôi:

    nguồn kích hoạt P3.5

  3. Exit File. Bắt đầu một cửa sổ terminal mới.

  4. Loại sau đây để xem những gì môi trường là hoạt động

    thông tin conda -e

Kết quả cho thấy rằng tôi đang sử dụng môi trường P3.5 tôi theo mặc định.

Đối với Windows:
Tạo một file lệnh (cmd) với "kích hoạt environment_name" và làm theo các hướng dẫn để có nó thực hiện bất cứ khi nào bạn mở một dấu nhắc lệnh

  1. Tạo một tập tin batch lệnh, ví dụ "my_conda.cmd", đặt nó vào thư mục Dữ liệu ứng dụng.
  2. Định cấu hình để tự động khởi động bất cứ khi nào bạn mở cmd. Cài đặt này trong Registry:
    chìa khóa: HKCU \ SOFTWARE \ Microsoft \ Command Processor
    giá trị : AutoRun
    loại: REG_EXPAND_SZ
    dữ liệu: "% AppData% \ my_conda.cmd"

từ câu trả lời này : https://superuser.com/a/302553/143794

+1

Cảm ơn bạn rất nhiều. Tôi thấy rằng với phiên bản Mac của mình, tôi không thể loại bỏ Python 2 - vì vậy hãy làm theo các hành động được đề nghị để thiết lập hai môi trường riêng biệt, nhưng rất khó để nhớ kích hoạt môi trường trên mỗi cửa sổ đầu cuối mới. Những công việc này! –

0

tôi đã không hài lòng với bất kỳ câu trả lời trình bày ở đây, kể từ khi kích hoạt một môi trường mất một vài giây trên nền tảng của tôi (vì lý do gì)

tôi đã sửa đổi biến đường dẫn của tôi sao cho môi trường tôi muốn làm mặc định có mức độ ưu tiên so với mặc định thực tế.

Trong trường hợp của tôi, tôi sử dụng các lệnh sau đây để thực hiện điều đó cho môi trường "py35":

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

để tìm ra nơi mà môi trường của bạn được lưu trữ, kích hoạt nó và nhập where python. Tôi không chắc chắn nếu phương pháp này có bất kỳ nhược điểm nào. Vì nó cũng thay đổi đường dẫn mặc định của conda thực thi. Nếu đó là trường hợp, xin vui lòng bình luận.

1

Đối với cửa sổ Anaconda đi kèm với Anaconda Nhắc là một phím tắt để cmd và có thể được sử dụng chạy lệnh conda mà không cần thêm anaconda trong biến PATH. Tìm vị trí của nó, sao chép và đổi tên bản sao (nói myenv_prompt). Nhấp chuột phải vào myenv_prompt và chọn các thuộc tính trong menu ngữ cảnh.

enter image description here

Dạng Target của cửa sổ Properties nên đã được lấp đầy với các văn bản, một cái gì đó giống như %windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\ Có ba phần của lệnh này 1) bắt đầu ... \ cmd.exe 2) chạy .. . \ acitvate.bat với môi trường 3) ...\ Miniconda3 \

Thay đổi phần thứ 3 đến đường dẫn của môi trường (nói myenv) mà bạn muốn như mặc định tức là lấp đầy dạng Target cái gì đó như %windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\envs\myenv

Bây giờ myenv_prompt sẽ hoạt động như phím tắt để bắt đầu cmd với myenv như môi trường mặc định cho python. Phím tắt này bạn có thể giữ trong menu bắt đầu hoặc được ghim trong thanh tác vụ.

Một ưu điểm của phương pháp này là bạn có thể tạo một vài phím tắt mỗi môi trường có môi trường khác nhau làm môi trường mặc định. Ngoài ra bạn có thể đặt thư mục mặc định bằng cách điền Start trong dạng cửa sổ Properties

Hope this helps

PS: Nó không phải là cần thiết để tìm Anaconda Prompt và có thể được thực hiện bằng cách thay đổi mục tiêu của bất kỳ phím tắt. Nhưng bạn sẽ cần phải biết đường dẫn của cmd.exe và activate.bat

1

Trong trường hợp của bạn, bạn chỉ cần áp dụng lệnh sau từ lời nhắc Conda.

>conda config --set core.default_env=py34 

Sau đó, nếu cần thiết gần gũi và khởi động lại Conda nhắc.

+0

điều này không phải là nghĩa vụ phải làm việc –

Các vấn đề liên quan