Làm cách nào để tôi quay lại python2 sau khi Anaconda đặt python3 làm mặc định?


18

Gần đây, tôi đã cài đặt Anaconda3-2.5.0-Linux-x86_64.sh vào ngày 15.04 của tôi và kết thúc với điều này!

:~$ python --version
Python 3.5.1 :: Anaconda 2.5.0 (64-bit)

:~$ python2 --version
Python 2.7.9

:~$ python3 --version
Python 3.5.1 :: Anaconda 2.5.0 (64-bit)

Trong những giây phút cuối cùng của quá trình cài đặt, tôi đã nhập một cái gì đó như yesvội vàng, và tôi cho rằng nó phải làm một cái gì đó với điều này. (Ok, lỗi của tôi, đáng lẽ tôi nên xử lý việc đó một cách cẩn thận, nhưng tôi cần giúp đỡ ngay bây giờ, không chỉ trích).

Ảnh chụp màn hình

AFAIK điều này chắc chắn sẽ phá vỡ các chương trình khác. Tôi làm gì bây giờ?


Những gì tôi nghĩ có thể làm việc.

Điều này có thể được thực hiện bằng cách sử dụng bí danh?

alias python=python2

Nhưng tôi không chắc chắn.


Đúng. sử dụngalias python=python2
Mostafa Ahangarha 20/03/2016

AFAIK điều này chắc chắn sẽ phá vỡ các chương trình khác. Điều gì làm bạn nghĩ như vậy? Nếu Anaconda đặt Python 3 làm mặc định, có lẽ đó là lý do.
fkraiem

Tôi đã phá hỏng một trong những dự án của tôi được viết cho 2.x và việc chuyển đổi mặc định thành 3.x không được khuyến khích đặc biệt vì nhiều gói hoạt động trên 2.x!
nham hiểm

Đây là khi bạn rất vui vì bạn đã thực hiện phương pháp chuyên nghiệp và có một bản sao của ổ đĩa khởi động được cài đặt sẵn để ngăn chặn điều này trở thành một công cụ xử lý thời gian lớn. Xin vui lòng xem câu trả lời của tôi dưới đây. Tôi nghĩ rằng phương pháp cài đặt của bạn gây ra trục trặc. Vì vậy, nếu điều này xảy ra với tôi, tôi sẽ hoàn nguyên và thử lại. Tổng thời gian sẽ ít hơn một ngày để tìm hiểu xem nó có khả thi hay không. Trong trường hợp của tôi, như bạn có thể thấy, tôi đang ở phần cuối của xác minh nên bây giờ có thể tiến triển để xem liệu điều này có xứng đáng với nỗ lực ở nơi đầu tiên không. Mất một vài ngày để đảm bảo rằng nó đã không gây ra vấn đề và công việc nghiên cứu đang đi đúng hướng.
SDsolar

như để chỉ định phiên bản Python, hãy chắc chắn rằng bạn biết chính xác hiệu ứng gợn này có thể có trong toàn bộ hệ thống của bạn. Trừ khi bạn chỉ chơi, nó thực sự sẽ yêu cầu một quy trình xác minh đầy đủ nếu bạn thay đổi mục tiêu của which pythonkết quả shebang mặc định . Chỉ mất một chút thời gian lên phía trước để ngăn chặn việc phát hiện ra rằng bạn đã vẽ mình vào góc cần viết lại một số tiện ích của bạn. Tốt nhất là để mọi thứ hoạt động với mặc định trừ khi bạn có nhiều thời gian trên tay.
SDsolar

Câu trả lời:


18

Tôi đã trải qua quá trình cài đặt trong VM và sau đó xảy ra.

  1. Trình cài đặt yêu cầu một vị trí cài đặt. Mặc định là/home/myuser/anaconda3 .
  2. Cuối cùng, bạn sẽ được hỏi

    Python 3.5.1 :: Continuum Analytics, Inc.
    creating default environment...
    installation finished.
    Do you wish the installer to prepend the Anaconda3 install location
    to PATH in your /home/myuser/.bashrc ? [yes|no]
    [no] >>> yes
    
    Prepending PATH=/home/myuser/anaconda3/bin to PATH in /home/myuser/.bashrc
    A backup will be made to: /home/myuser/.bashrc-anaconda3.bak

Để khôi phục hành vi cũ, hãy vào thư mục nhà của bạn và làm

mv .bashrc-anaconda3.bak .bashrc

sau đó bắt đầu một vỏ mới.

Như bạn đề xuất, bạn có thể alias python=python2, nhưng tôi thấy điều đó hơi kỳ lạ. tôi sẽ

  1. Khôi phục bản gốc .bashrc
  2. Tạo (nếu nó không tồn tại) ~/bin
  3. Liên kết ln -s ~/anaconda3/bin/python3 ~/bin/python3
  4. [Chuẩn bị $HOME/binthành $PATH] (Nên được đặt mặc định theo~/.profile )
  5. Relogin.

Theo cách đó, gọi python3 sẽ bắt đầu một từ Anaconda.


Một điểm quan trọng là, bản gốc /usr/bin/pythonvẫn còn đó, và vẫn chỉ đến python2.7. Sự phân nhánh của việc cópython->python3 trong đường dẫn của bạn phụ thuộc vào cách gọi một tập lệnh cụ thể.

Nếu shebang #!/usr/bin/pythonđược sử dụng, giống như nó có thể có trong tất cả các tệp thực thi được gửi cùng với Ubuntu, sẽ không có gì thay đổi. Mặt khác, đối với tính di động tốt hơn #!/usr/bin/env pythonđôi khi được sử dụng, mà bây giờ sẽ gây ra python3.5được gọi.


3
"4. Chuẩn bị $ HOME / bin thành $ PATH" .. đã được thực hiện theo mặc định ~/.profile- chỉ cần một relogin sau khi tạo ~/bin.
muru

@muru Đó là sự thật, cảm ơn. Thêm vào câu trả lời.
Nepeavere

được rồi, đã làm việc, cảm ơn! Chỉ cần thông báo điều này, rằng tôi đã cài đặt python 3.4.3 trước đó (và cả pip và pip3 đều được liên kết với nó), bây giờ tôi có 2.7, 3.4, 3.5. Bây giờ tôi sẽ cài đặt lại pip để chỉ nó lên 3,5!
nham hiểm

Anaconda đi kèm với người quản lý gói riêng của mình được gọi là conda. Nó cũng quản lý môi trường ảo. Tôi sử dụng để cài đặt các gói thay vì pip.
Nepeavere


7

Câu trả lời hay tại đây: /programming/24405561/how-to-install-2-anacondas-python-2-7-and-3-4-on-mac-os-10-9

conda create -n python2 python=2.7 anaconda

sau đó, để chuyển đổi:

source activate python2

Nếu bạn cần điều này, bạn rất có thể có vấn đề sâu sắc hơn nhiều. Nếu hệ thống của bạn quan trọng, hãy xác minh đầy đủ mọi lệnh và / hoặc tiện ích phụ thuộc vào Python. Cảnh báo đúng.
SDsolar

3

Trong trường hợp bất cứ ai đang tìm cách thay đổi phiên bản mặc định python của họ trở lại 2.7 sau khi làm hỏng nó (bằng cách thay đổi mặc định thành: anaconda hoặc python 3) và kết thúc bằng phần mềm không có chức năng, chỉ cần theo liên kết sau: Liên kết với hướng dẫn để thay đổi mặc định phiên bản trăn.


Nếu một sự thay đổi hệ thống trở nên tồi tệ, hãy chắc chắn rằng bạn có thể khôi phục nó. Hãy chắc chắn rằng bạn có bản sao lưu hình ảnh hệ thống tốt để mọi thay đổi lớn có thể được đảo ngược nhanh chóng nếu chúng không đi theo kế hoạch của bạn. Nghĩ chuyên nghiệp. Nếu bạn sử dụng các kỹ thuật nghiệp dư thì bạn không thể mong đợi kết quả chuyên nghiệp.
SDsolar

1

Điều này làm việc cho tôi nhưng đối với Miniconda, nó cũng sẽ hoạt động với Anaconda nhưng xin vui lòng sửa tôi nếu tôi sai.

Trước tiên hãy lấy biến $ PATH của bạn :

echo $PATH

Nó có thể sẽ trông như thế này (con đường miniconda trước mọi thứ khác):

/home/your_user/miniconda3/bin:$PATH

Sao chép đường dẫn đó vào cuối tệp ~ / .bashrc của bạn , nhưng với Miniconda ở cuối thay vì bắt đầu đường dẫn như vậy:

export PATH="$PATH:/home/your_user/miniconda3/bin"

Hệ thống sẽ tìm kiếm các chương trình khi bắt đầu $ PATH biến trước thư mục miniconda3 / bin.

Nó sẽ khôi phục các phiên bản cho các chương trình trước đó mà bạn có như python.

Bắt đầu từ Conda 4.4, họ đã thay đổi mã được thêm vào ~ / .bashrc. Bây giờ, để đạt được điều tương tự, hãy chỉnh sửa ~ / .bashrc và nhận xét dòng bên dưới như thế để ngăn lớp cơ sở (môi trường cơ sở) kích hoạt trong mọi thiết bị đầu cuối. Không cần phải chạm vào bất kỳ phần nào khác của bổ sung mới. Tôi không chắc có ý nghĩa gì CONDA_CHANGEPS1=false, nhưng cho đến nay vẫn chưa có vấn đề gì.

   # CONDA_CHANGEPS1=false conda activate base

Và trong khi bạn sẽ không thấy các thư mục conda trong đường dẫn nữa, các condalệnh sẽ vẫn chạy tốt, và ban đầu của bạn python, python3pipenvlệnh sẽ là tốt.


Upvote vì tôi nghĩ bạn đúng. Điều này là tốt để có trong cơ sở dữ liệu. Tuy nhiên, tôi có thể vui lòng yêu cầu bạn cụ thể hơn về số phiên bản của phần mềm có liên quan không?
SDsolar

Cảm ơn bạn, và tôi không thực sự nghĩ rằng phiên bản chương trình có vấn đề, điều này sẽ luôn hoạt động. Vào thời điểm đó, trình cài đặt của tôi là phiên bản sau: Miniconda3 4.3.14. cái đó có giúp ích không?
pedrodcb

0

Đây là câu trả lời của tôi, và nó có thể hoặc không thể là câu trả lời cụ thể thực sự cho những gì bạn đã làm cho hệ thống của riêng bạn.

Tuy nhiên, tôi đang ở trong một tình huống tương tự và có cùng mối quan tâm.

Tôi đang sử dụng Ubuntu 16.04 LTS và Python 2.7.12, và vừa mới cài đặt Anaconda.

Vì vậy, bây giờ, khi tôi đi đến dòng lệnh và gõ python nó vẫn đi đến cài đặt Python2 của tôi.

Xác nhận bởi trình tự này:

$which python
/usr/bin/python     <  Catch-all for max compatibility
$python
Python 2.7.12 . . etc

Vì vậy, trong trường hợp của tôi, anaconda KHÔNG gây ra bất kỳ vấn đề nào với các shebang Python2 mặc định của tôi.

Cuối cùng, đó là câu hỏi.

Khi bạn yêu cầu hệ thống, which pythonbạn có thể tin tưởng rằng đó là chuỗi chính xác để sử dụng trong dòng đầu tiên của chương trình Python kiểu dòng lệnh của bạn.

Trong tình huống của tôi, tất cả các tệp tập lệnh dòng Python tương tự của tôi tiếp tục thực thi tốt.

Tôi có xu hướng viết Python trong chế độ 3 tương thích. Chẳng hạn như sử dụng dấu ngoặc đơn xung quanh câu lệnh in của tôi. Nhưng tôi đang tích cực chống lại một sự thay đổi lớn đối với hệ thống có thể khiến các chương trình Python 2 khó khăn gặp phải trục trặc. Python 3 nghe có vẻ tuyệt vời nhưng không cần thiết cho nhu cầu của tôi. Python 2 là một ngôn ngữ tuyệt vời.

Môi trường điện toán của tôi không cho phép tôi quay lại và tái thiết kế các quy trình đã được điều chỉnh để hoạt động chính xác mà không mất thời gian vì tôi sẽ phải quay lại và tìm ra nơi tôi đã sử dụng nó ở nơi đầu tiên.


Điểm mấu chốt đối với tôi: Khi cài đặt anacondađể sử dụng trong tương lai, tôi không gặp phải bất kỳ sự cố tốc độ nào.


Đó là điểm mà tôi đang trong quá trình ... Vừa hoàn thành chứng nhận lại tất cả các phần mềm trong quá khứ.


Bước tiếp theo là thực sự sử dụng một số thứ hay ho được hứa hẹn trong gói.


Vì vậy, tôi phải nghi ngờ rằng cài đặt đơn giản khác anacondaphải có nhiều hơn cho tình huống của bạn.

Từ kinh nghiệm của tôi, nó không phải là một vấn đề.


FYI, tôi có một máy trạm khoa học hoàn chỉnh, làm việc về động lực học mặt trời. Ngoài ra về phù du và tương tác vệ tinh. Nó PHẢI làm việc. VÌ tôi không chỉ là một con lừa một trong tất cả những điều này. Tôi cài đặt từng thứ một, và sau đó xác minh rằng mọi thứ trước khi nó hoạt động. Sau đó tôi chuyển sang tiếp theo. SciPy, Matplotlab, v.v. (Sở thích của tôi về âm mưu là gnuplot). Vì vậy, xin vui lòng hiểu rằng tôi đang gửi câu trả lời này dưới dạng dữ liệu từ hệ thống làm việc 24x7 trực tiếp trong môi trường nghiên cứu học thuật. Đây không phải là một môi trường thử nghiệm - đó là sản xuất hàng ngày.
SDsolar

Ngoài ra, như tôi đã đề cập trong một bình luận ở trên, HÃY NGHE CHUYÊN NGHIỆP. Các hệ thống này được sử dụng bởi các nhà nghiên cứu cấp cao trên toàn thế giới. -> Đảm bảo ổ đĩa khởi động của bạn có bản sao trước khi bạn thực hiện bất kỳ nâng cấp hệ thống lớn nào. Các ddlệnh là nhanh chóng và dễ dàng, và các kết nối SATA dễ dàng. Không có lý do để tránh bảo vệ hệ thống của bạn. Chỉ cần cẩn thận rằng ở mỗi bước bạn có thể hoàn nguyên bất kỳ và tất cả các thay đổi có thể xảy ra. Rives cứng rẻ hơn rất nhiều so với thời gian của bạn. (trừ khi bạn không nghĩ đó là sự thật). Cấp tiền cộng với một cuộc khủng hoảng thời gian nên có đủ động lực.
SDsolar
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.