ฉันจะเปลี่ยนกลับเป็น python2 ได้อย่างไรหลังจากที่ Anaconda ตั้ง python3 เป็นค่าเริ่มต้น


18

เมื่อเร็ว ๆ นี้ฉันติดตั้งAnaconda3-2.5.0-Linux-x86_64.shใน 15.04 ของฉันและจบลงด้วยสิ่งนี้!

:~$ 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)

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

ภาพหน้าจอ

AFAIK นี่จะเป็นการทำลายโปรแกรมอื่น ๆ อย่างแน่นอน ฉันทำอะไรตอนนี้?


สิ่งที่ฉันคิดว่าสามารถทำงานได้

สิ่งนี้สามารถทำได้โดยใช้นามแฝง?

alias python=python2

แต่ฉันไม่แน่ใจ


ใช่. ใช้alias python=python2
Mostafa Ahangarha

AFAIK นี่จะเป็นการทำลายโปรแกรมอื่น ๆ อย่างแน่นอน อะไรทำให้คุณคิดอย่างนั้น ถ้า Anaconda ตั้งค่า Python 3 เป็นค่าเริ่มต้นอาจเป็นเพราะเหตุผล
fkraiem

ฉันได้ทำลายหนึ่งในโครงการของฉันที่เขียนขึ้นสำหรับ 2.x และการแปลงค่าเริ่มต้นเป็น 3.x ไม่ได้รับการสนับสนุนโดยเฉพาะอย่างยิ่งเนื่องจากแพ็คเกจจำนวนมากทำงานบน 2.x!
อุบาทว์

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

สำหรับการระบุเวอร์ชั่นของ Python ให้แน่ใจว่าคุณรู้ถึงผลกระทบระลอกคลื่นที่เกิดขึ้นกับระบบทั้งหมดของคุณ มันจะต้องใช้กระบวนการตรวจสอบอย่างเต็มรูปแบบหากคุณเปลี่ยนเป้าหมายของwhich pythonผลลัพธ์ Shebang ที่เป็นค่าเริ่มต้น ใช้เวลาเพียงเล็กน้อยในการป้องกันไม่ให้ค้นพบในภายหลังว่าคุณได้ทาสีตัวเองไว้ในมุมที่จำเป็นต้องเขียนโปรแกรมอรรถประโยชน์ของคุณใหม่ ที่ดีที่สุดคือปล่อยให้สิ่งต่าง ๆ ทำงานร่วมกับค่าเริ่มต้นเว้นแต่คุณจะมีเวลาเหลือเฟือ
SDsolar

คำตอบ:


18

ฉันผ่านการติดตั้งใน VM และเกิดขึ้นต่อไปนี้

  1. โปรแกรมติดตั้งจะถามตำแหน่งการติดตั้ง /home/myuser/anaconda3เริ่มต้นคือ
  2. ในตอนท้ายคุณจะถูกถาม

    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

หากต้องการคืนค่าพฤติกรรมเดิมให้ไปที่โฮมไดเรกทอรีของคุณแล้วทำ

mv .bashrc-anaconda3.bak .bashrc

จากนั้นเริ่มต้นเชลล์ใหม่

อย่างที่คุณแนะนำคุณทำได้alias python=python2แต่ฉันพบว่ามันแปลกไปหน่อย ฉันจะ

  1. คืนค่าดั้งเดิม .bashrc
  2. สร้าง (หากไม่มีอยู่) ~/bin
  3. ลิงค์ ln -s ~/anaconda3/bin/python3 ~/bin/python3
  4. [Prepend $HOME/binto $PATH] (ควรตั้งค่าไว้เป็นค่าเริ่มต้นแล้ว~/.profile)
  5. RELOGIN

ด้วยวิธีนี้การโทรpython3จะเริ่มจากแอนาคอนดา


จุดสำคัญคือว่าเดิมยังคงมีอยู่และยังคงชี้ไปที่/usr/bin/python python2.7การขยายขอบเขตของการมีpython->python3ในเส้นทางของคุณขึ้นอยู่กับวิธีการเรียกสคริปต์เฉพาะ

หาก#!/usr/bin/pythonมีการใช้shebang อย่างที่ควรจะเป็นใน executables ทั้งหมดที่มาพร้อมกับ Ubuntu ไม่มีอะไรเปลี่ยนแปลง ในทางตรงกันข้ามสำหรับการพกพาที่ดีกว่า#!/usr/bin/env pythonบางครั้งใช้ซึ่งตอนนี้จะทำให้python3.5ถูกเรียก


3
"4. เพิ่มข้างหน้า $ HOME / bin ถึง $ PATH" .. ทำมาแล้วโดยค่าเริ่มต้น~/.profile- เพียงแค่ RELOGIN ~/binเป็นสิ่งจำเป็นหลังจากที่สร้าง
muru

@muru จริงขอบคุณ เพิ่มไปยังคำตอบ
Nephente

โอเคทำงานได้ดีขอบคุณ! ฉันเพิ่งติดตั้ง python 3.4.3 ไว้ก่อนหน้านี้ (และ pip ​​และ pip3 เชื่อมโยงกันด้วย) ตอนนี้ฉันมี 2.7, 3.4, 3.5 ตอนนี้ฉันจะติดตั้ง pip อีกครั้งเพื่อชี้ไปที่ 3.5!
อุบาทว์

Anaconda มาพร้อมกับผู้จัดการแพคเกจของตัวเองที่ชื่อว่า conda นอกจากนี้ยังจัดการสภาพแวดล้อมเสมือน ฉันใช้สิ่งนั้นเพื่อติดตั้งแพ็คเกจแทน pip
Nephente


7

คำตอบที่ดีที่นี่: /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

จากนั้นเพื่อสลับ:

source activate python2

หากคุณต้องการสิ่งนี้คุณอาจมีปัญหาที่ลึกซึ้งกว่านี้ หากระบบของคุณมีความสำคัญให้ทำการตรวจสอบคำสั่งและ / หรือยูทิลิตี้ที่พึ่งพา Python อย่างสมบูรณ์ เตือนภัย
SDsolar

3

ในกรณีที่ทุกคนต้องการเปลี่ยนเวอร์ชั่นเริ่มต้นของไพ ธ อนกลับเป็น 2.7 หลังจากเลอะมัน (โดยเปลี่ยนหนึ่งเป็นแอนาคอนดาหรือไพ ธ อน 3) และจบลงด้วยซอฟต์แวร์ที่ใช้งานไม่ได้เพียงไปที่ลิงค์นี้: ลิงก์พร้อมคำแนะนำเพื่อเปลี่ยนค่าเริ่มต้น รุ่นหลาม


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

1

สิ่งนี้ได้ผลสำหรับฉัน แต่สำหรับ Miniconda มันก็ควรใช้ได้กับ Anaconda ด้วย แต่โปรดแก้ไขให้ฉันด้วยถ้าฉันผิด

ก่อนรับตัวแปร$ PATHของคุณ:

echo $PATH

มันอาจจะมีลักษณะเช่นนี้ (เส้นทาง miniconda ก่อนทุกสิ่ง):

/home/your_user/miniconda3/bin:$PATH

คัดลอกพา ธ นั้นไปยังด้านล่างของไฟล์ ~ / .bashrcของคุณแต่ด้วย Miniconda ที่ท้ายแทนที่จะเป็นจุดเริ่มต้นของพา ธ ดังนี้:

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

ระบบจะค้นหาโปรแกรมที่จุดเริ่มต้นของตัวแปร$ PATHหน้าโฟลเดอร์ miniconda3 / bin

ควรคืนค่าเวอร์ชันสำหรับโปรแกรมก่อนหน้านี้ที่คุณมีเช่นไพ ธ อน

เริ่มต้นในConda 4.4 พวกเขาเปลี่ยนรหัสที่เพิ่มเป็น ~ / .bashrc ตอนนี้เพื่อให้ได้สิ่งเดียวกันแก้ไข ~ / .bashrc และคอมเม้นท์บรรทัดด้านล่างเช่นนั้นเพื่อป้องกันเลเยอร์ฐาน (สภาพแวดล้อมพื้นฐาน) จากการเปิดใช้งานในทุกเทอร์มินัล ไม่จำเป็นต้องแตะส่วนอื่น ๆ ของส่วนเพิ่มเติมใหม่ ฉันไม่แน่ใจว่าสิ่งใดมีความสำคัญCONDA_CHANGEPS1=falseแต่ยังไม่พบปัญหาใด ๆ

   # CONDA_CHANGEPS1=false conda activate base

และในขณะที่คุณจะไม่เห็นโฟลเดอร์ CONDA ในเส้นทางอีกต่อไปที่condaคำสั่งจะยังคงทำงานได้ดีและต้นฉบับของคุณpython, python3และpipenvคำสั่งที่จะได้เป็นอย่างดี


โหวตเพราะฉันคิดว่าคุณถูกต้อง นี่เป็นสิ่งที่ดีที่มีในฐานข้อมูล อย่างไรก็ตามฉันขอได้ไหมว่าคุณเป็นคนเฉพาะเจาะจงมากขึ้นเกี่ยวกับหมายเลขรุ่นของซอฟต์แวร์ที่เกี่ยวข้อง?
SDsolar

ขอบคุณและฉันไม่คิดว่ารุ่นของโปรแกรมมีความสำคัญควรทำงานได้ตลอดเวลา ในขณะที่ตัวติดตั้งของฉันเป็นรุ่นต่อไปนี้: Miniconda3 4.3.14 มันช่วยได้ไหม
pedrodcb

0

นี่คือคำตอบของฉันและมันอาจจะใช่หรือไม่ใช่คำตอบเฉพาะสำหรับสิ่งที่คุณทำกับระบบของคุณ

อย่างไรก็ตามฉันอยู่ในสถานการณ์ที่คล้ายกันและมีความกังวลเดียวกันมาก

ฉันใช้ Ubuntu 16.04 LTS และ Python 2.7.12 และเพิ่งติดตั้ง Anaconda

ดังนั้นตอนนี้เมื่อฉันไปที่บรรทัดคำสั่งและพิมพ์pythonยังคงไปที่การติดตั้ง Python2 ของฉัน

ยืนยันโดยลำดับต่อไปนี้:

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

ดังนั้นในกรณีanacondaของฉันอย่าทำให้เกิดปัญหากับ Python2 shebangs เริ่มต้นของฉัน

ท้ายที่สุดนั่นคือคำถาม

เมื่อคุณถามระบบwhich pythonคุณสามารถเชื่อถือได้ว่าเป็นสตริงที่ถูกต้องที่จะใช้ในบรรทัดแรกของโปรแกรม Python สไตล์บรรทัดคำสั่งของคุณ

ในสถานการณ์ของฉันไฟล์สคริปต์บรรทัดคำสั่ง Python เดียวกันทั้งหมดของฉันยังคงทำงานได้ตามปกติ

ฉันมักจะเขียน Python ในโหมดที่เข้ากันได้ 3 แบบ เช่นการใช้วงเล็บรอบคำสั่งพิมพ์ของฉัน แต่ฉันกำลังต่อต้านการเปลี่ยนแปลงครั้งใหญ่ในระบบซึ่งอาจทำให้โปรแกรม Python 2 ที่ทำงานอย่างหนักเพื่อเผชิญหน้ากับความผิดพลาด Python 3 ฟังดูดี แต่ไม่จำเป็นสำหรับความต้องการของฉัน Python 2 เป็นภาษาที่น่าอัศจรรย์

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


บรรทัดล่างสำหรับฉัน: เมื่อติดตั้งanacondaเพื่อใช้ในอนาคตฉันไม่ได้มีการกระแทกความเร็วหรือปัญหาใด ๆ


นั่นคือจุดที่ฉันอยู่ในกระบวนการ ... เพิ่งเสร็จสิ้นการรับรองซอฟต์แวร์ที่ผ่านมาทั้งหมดอีกครั้ง


ขั้นตอนต่อไปคือการใช้สิ่งดีๆที่เป็นสัญญาไว้ในแพ็คเกจ


ดังนั้นฉันต้องสงสัยว่าการติดตั้งอื่น ๆanacondaนั้นจะต้องมากกว่าสถานการณ์ของคุณ

จากประสบการณ์ของฉันมันไม่ใช่ปัญหาเลย


FYI ฉันมีเวิร์กสเตชันวิทยาศาสตร์ที่สมบูรณ์ซึ่งทำงานเกี่ยวกับพลังงานแสงอาทิตย์ ยังเกี่ยวกับแร่ธาตุและปฏิสัมพันธ์จากดาวเทียม มันต้องทำงาน ดังนั้นฉันไม่ได้เป็นเพียงแค่กลอุบายในเรื่องทั้งหมดนี้ ฉันติดตั้งสิ่งหนึ่งครั้งและจากนั้นตรวจสอบว่าทุกอย่างก่อนที่จะทำงาน จากนั้นฉันก็ไปต่อ SciPy, Matplotlab ฯลฯ (ความชอบของฉันสำหรับการวางแผนคือ gnuplot) ดังนั้นโปรดเข้าใจว่าฉันกำลังส่งคำตอบนี้เป็นชุดข้อมูลจากระบบการทำงานแบบสด 24x7 ในสภาพแวดล้อมการวิจัยเชิงวิชาการ นี่ไม่ใช่สภาพแวดล้อมการทดสอบ - เป็นการผลิตรายวัน
SDsolar

นอกจากนี้ตามที่ฉันพูดถึงในความคิดเห็นข้างต้นคิดอย่างมืออาชีพ ระบบเหล่านี้มีการใช้งานโดยนักวิจัยระดับสูงทั่วโลก -> ตรวจสอบให้แน่ใจว่าไดรฟ์สำหรับบูตของคุณมีโคลนก่อนทำการอัพเกรดระบบที่สำคัญ ddคำสั่งง่ายและรวดเร็วและการเชื่อมต่อแบบ SATA ได้ง่าย ไม่มีเหตุผลที่จะหลีกเลี่ยงการปกป้องระบบของคุณ เพียงแค่ระวังว่าในแต่ละขั้นตอนคุณสามารถย้อนกลับการเปลี่ยนแปลงใด ๆ และทั้งหมดที่อาจเกิดขึ้นได้ เรนเดอร์ยากราคาถูกกว่าเวลาของคุณมาก (เว้นแต่คุณจะไม่คิดว่าเป็นเรื่องจริง) เงินทุนรวมกับเวลาที่กระทืบควรมีแรงจูงใจเพียงพอ
SDsolar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.