2013-03-14 40 views
12

Tôi muốn thay thế hoàn toàn python 3 bằng python 2 trong linux. Tôi đã đọc https://wiki.archlinux.org/index.php/Python nhưng nó chỉ cung cấp bản sửa lỗi tạm thời. Tôi cần phải đảm bảo rằng khi tôi gọiLàm thế nào để thay thế hoàn toàn python 3 bằng python 2 trong vòm linux

#!/usr/bin/python 

chương trình của tôi đang sử dụng python 2 thay vì python 3.

+0

bạn nên thực sự thay đổi shebang của bạn thành '#!/usr/bin/python2' nếu đó là ý của bạn. – Eevee

Trả lời

35

Trong Arch, /usr/bin/python thực sự là một liên kết tượng trưng đến python3. Giả sử bạn đã cài đặt python2, như là người chủ, thay đổi liên kết tượng trưng để trỏ đến python2:

cd /usr/bin 
ls -l python 
    lrwxrwxrwx 1 root root 7 5 sept. 07:04 python -> python3 
ln -sf python2 python 
ls -l python 
    lrwxrwxrwx 1 root root 7 Dec 11 19:28 python -> python2 

Nếu bạn đang sử dụng gói python2-virtualenv, sau đó làm tương tự cho /usr/bin/virtualenv:

cd /usr/bin 
ln -sf virtualenv2 virtualenv 
+0

Cảm ơn bạn. Tôi đã thêm nó vào Arch wiki. – user1876508

+0

câu trả lời ngắn gọn tuyệt vời – kmonsoor

+0

Đã làm việc cho tôi. Giải pháp tốt. – axierjhtjz

0

Thay đổi symlink mặc định là một ý tưởng tồi, và nó được tái tạo trên các bản cập nhật python3. Thay vào đó, tạo ra một địa phương python override:

sudoedit /usr/local/bin/python

Dán bên này và lưu các tập tin:

#!/bin/bash 
exec python2 "[email protected]" 

Đừng quên để làm cho nó thực thi:

sudo chmod +x /usr/local/bin/python

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