Tôi muốn mở rộng một câu trả lời trước đây vì hai cách tiếp cận được đưa ra không tương đương và một trong số chúng thậm chí có thể phá vỡ hệ thống. Vấn đề là có hai điều khác nhau mà người ta có thể cố gắng thực hiện bằng cách "thay đổi phiên bản Python mặc định".
Tóm tắt nhanh chóng
cộng
alias python3=python3.7
đến
alias python3=python3.7
9.Không sử dụng
$ sudo update-alternatives --config python3
0 để thay đổi phiên bản Python mặc định của bạn, vì điều này sẽ phá vỡ các ứng dụng hệ thống.not use $ sudo update-alternatives --config python3
0 to change your default python version, as this
will break system applications. Biết thêm chi tiết
Bí danh bash
Đầu tiên, là đối với một vỏ tương tác, người ta chỉ muốn dễ dàng mở python mong muốn bằng cách viết
$ python
hoặc
$ python3
Điều này được thực hiện bằng cách thêm dòng
alias python3=python3.7
đến
alias python3=python3.7
9. Nếu một người đang sử dụng một shell khác, hãy thêm tệp này vào tệp cấu hình thích hợp. Điều này cũng có lợi thế là nếu nó gây ra vấn đề vì bất kỳ lý do gì, người ta chỉ có thể loại bỏ dòng vi phạm trong alias python3=python3.7
9 và khởi động lại thiết bị đầu cuối.$ sudo update-alternatives --config python3
0
$ sudo update-alternatives --config python3
Điều thứ hai người ta có thể có nghĩa là "thay đổi phiên bản Python mặc định", là thay đổi phiên bản Python mặc định cho tất cả các chương trình, bao gồm cả các chương trình không được khởi chạy từ Shell tương tác. Đây là kết quả của việc chạy
$ sudo update-alternatives --config python3
Tuy nhiên, nếu bạn chạy điều này trong một bản cài đặt sạch của Debian/Ubuntu, bạn sẽ nhận thấy rằng lệnh sẽ trả về
update-alternatives: error: no alternatives for python3
Ngay cả khi bạn có nhiều phiên bản của Python 3 được cài đặt qua
$ sudo update-alternatives --config python3
4. Có một lý do rất tốt cho việc này.Vấn đề với vấn đề này là nhiều ứng dụng hệ thống sử dụng Python và tùy thuộc vào phân phối chính xác, nhiều người sử dụng Python 3. Thay đổi phiên bản nào được gọi bởi lệnh
$ sudo update-alternatives --config python3
5 trên toàn cầu sẽ buộc các ứng dụng này sử dụng phiên bản này. Mặc dù phiên bản khác nhau của Python 3 phần lớn tương thích, nhưng vẫn có các tính năng được di chuyển và loại bỏ giữa các bản phát hành. Nếu một ứng dụng hệ thống sử dụng các tính năng này, việc thay đổi $ sudo update-alternatives --config python3
5 để khởi chạy phiên bản mới hơn sẽ phá vỡ ứng dụng.Kiểm tra
Tôi đã tạo ra một bản cài đặt mới của Ubuntu 18.04 trong VM. Thêm bí danh bash không gây ra vấn đề ngay lập tức.
Sử dụng phương pháp
$ sudo update-alternatives --config python3
0 gây ra các vấn đề với $ sudo update-alternatives --config python3
4. Cụ thể, tôi cóModuleNotFoundError: No module named 'apt_pkg'
Sửa hệ thống của bạn nếu bạn chạy phương thức $ sudo update-alternatives --config python3
0
$ sudo update-alternatives --config python3
Nếu chúng tôi chạy
$ sudo update-alternatives --config python3
0 và phá vỡ $ sudo update-alternatives --config python3
4, chúng tôi vẫn có thể sửa chữa hệ thống. Trong quá trình thử nghiệm của tôi, thiết bị đầu cuối vẫn có thể được mở. Người ta có thể quay lại Python mặc định bằng cách chạy$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000
Trong đó 3.x là hệ thống của bạn phiên bản Python 3 gốc của bạn và 1000 chỉ là một ưu tiên cao để đảm bảo nó nằm trên đầu. Sau đó, người ta có thể chạy
$ sudo update-alternatives --config python3
và đảm bảo rằng hệ thống ban đầu Python được chọn. Khởi động lại hệ thống và nó sẽ trở lại bình thường.
Tôi đã cố gắng đặt phiên bản Python mặc định thành
$ sudo update-alternatives --config python3
5 trong update-alternatives: error: no alternatives for python3
3. Theo mặc định, nó là update-alternatives: error: no alternatives for python3
4 [2.7]. Tôi đã làm theo các bước dưới đây:update-alternatives --remove python /usr/bin/python2
update-alternatives --install /usr/bin/python python /usr/bin/python3
Nhưng tôi đang gặp lỗi sau cho câu lệnh thứ hai,
$ python
0
Siêu bão
4.7585 Huy hiệu vàng20 Huy hiệu bạc33 Huy hiệu Đồng5 gold badges20 silver badges33 bronze badges
Đã hỏi ngày 1 tháng 2 năm 2017 lúc 17:57Feb 1, 2017 at 17:57
RejeeshchandranrejeeshchandranRejeeshChandran
4.0283 Huy hiệu vàng23 Huy hiệu bạc32 Huy hiệu Đồng3 gold badges23 silver badges32 bronze badges
8
Dòng thứ hai được đề cập có thể được thay đổi thành
$ python
1Điều này ưu tiên 10 cho đường dẫn
$ sudo update-alternatives --config python3
5.Nhược điểm của việc chỉnh sửa thay thế
alias python3=python3.7
9 là việc sử dụng các lệnh có update-alternatives: error: no alternatives for python3
7 sẽ không hoạt động.
Nico Schlömer
49.4K25 Huy hiệu vàng186 Huy hiệu bạc229 Huy hiệu đồng25 gold badges186 silver badges229 bronze badges
Đã trả lời ngày 14 tháng 5 năm 2018 lúc 13:10May 14, 2018 at 13:10
10
EDIT:
Tôi đã viết điều này khi tôi còn trẻ và ngây thơ,
$ sudo update-alternatives --config python3
0 là cách tốt hơn để làm điều này. Xem câu trả lời của @Pardhu.Câu trả lời lỗi thời:
Mở tệp .bashrc của bạn
9. Nhậpupdate-alternatives: error: no alternatives for python3
0 vào một dòng mới ở đầu tệp sau đó lưu tệp bằng ctrl+o và đóng tệp bằng ctrl+x. Sau đó, quay lại dòng lệnh của bạn loạiModuleNotFoundError: No module named 'apt_pkg'
1. Bây giờ bí danh của bạn nên là vĩnh viễn.ModuleNotFoundError: No module named 'apt_pkg'
Nico Schlömer
49.4K25 Huy hiệu vàng186 Huy hiệu bạc229 Huy hiệu đồng25 gold badges186 silver badges229 bronze badges
Đã trả lời ngày 1 tháng 2 năm 2017 lúc 18:17Feb 1, 2017 at 18:17
SteamPunkeryStebunkerySteampunkery
3,8312 Huy hiệu vàng19 Huy hiệu bạc28 Huy hiệu đồng2 gold badges19 silver badges28 bronze badges
9
Để thay đổi Python 3.6.8 như mặc định trong Ubuntu 18.04 thành Python 3.7.
Cài đặt Python 3.7
Các bước để cài đặt Python3.7 và định cấu hình nó làm trình thông dịch mặc định.
Cài đặt gói Python3.7 bằng apt-get
2ModuleNotFoundError: No module named 'apt_pkg'
Thêm Python3.6 & Python 3.7 vào
0$ sudo update-alternatives --config python3
$ python
2Cập nhật Python 3 để chỉ vào Python 3.7
4 Nhập 2 cho Python 3.7ModuleNotFoundError: No module named 'apt_pkg'
Kiểm tra phiên bản Python
$ python
3
Alvin Sartor
1.9773 huy hiệu vàng20 Huy hiệu bạc35 Huy hiệu đồng3 gold badges20 silver badges35 bronze badges
Đã trả lời ngày 24 tháng 8 năm 2019 lúc 23:03Aug 24, 2019 at 23:03
5
Nếu bạn có Ubuntu 20.04 lts [Focal Fossa], bạn có thể cài đặt
ModuleNotFoundError: No module named 'apt_pkg'
5:$ python
4trong đó thay thế cho Symlink trong
ModuleNotFoundError: No module named 'apt_pkg'
6 để trỏ đến ModuleNotFoundError: No module named 'apt_pkg'
7.Đã trả lời ngày 18 tháng 5 năm 2020 lúc 20:12May 18, 2020 at 20:12
Silviotsilviotsilviot
4.4354 Huy hiệu vàng37 Huy hiệu bạc 50 Huy hiệu Đồng4 gold badges37 silver badges50 bronze badges
3
Để thay đổi thành Python3, bạn có thể sử dụng lệnh sau trong Terminal
ModuleNotFoundError: No module named 'apt_pkg'
0.Đã trả lời ngày 1 tháng 2 năm 2017 lúc 18:00Feb 1, 2017 at 18:00
DantevoronoidantevoronoiDanteVoronoi
1.0731 Huy hiệu vàng12 Huy hiệu bạc20 Huy hiệu Đồng1 gold badge12 silver badges20 bronze badges
2
CẬP NHẬT: Kể từ khi Ubuntu 20.04, Python3 là phiên bản mặc định, nhưng vẫn vậy, Python không được đăng ký là Python3 theo mặc định. Để thực hiện điều đó, bạn có thể chỉ cần làm:
Since Ubuntu 20.04, the python3 is the
default version, but still, python is not registered as python3 by default. In order to make that happen, you can simply do :
$ python
4Để biết thêm thông tin, bạn có thể kiểm tra điều này. Way Way:
Old way:
Làm
$ python
6Sau đó viết một trong hai
$ python
7hoặc
$ python
8Lưu tệp, đóng thiết bị đầu cuối và mở lại. Bây giờ bạn sẽ ổn thôi! Liên kết
You should
be fine now! Link
Đã trả lời ngày 15 tháng 9 năm 2017 lúc 18:34Sep 15, 2017 at 18:34
HosseinhosseinHossein
22.7K33 Huy hiệu vàng117 Huy hiệu bạc212 Huy hiệu đồng33 gold badges117 silver badges212 bronze badges
1
Một cách an toàn đơn giản sẽ là sử dụng bí danh. Đặt cái này vào tệp ~/.bashrc: Nếu bạn đã sử dụng Gedit Editor
gedit ~/.bashrc
Để đi vào tệp BASHRC và sau đó ở đầu tệp BASHRC sẽ thay đổi sau.
bí danh python = python3
Sau khi thêm các điều trên trong tệp. Chạy lệnh bên dưới
nguồn ~/.bash_aliases hoặc nguồn ~/.bashrc
example:
$ Python --Version
9ModuleNotFoundError: No module named 'apt_pkg'
$ python3 --Version
0$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000
$ bí danh Python = Python3
$ Python --Version
0$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000
$ python3 --VersionFeb 9, 2018 at 10:32
$ bí danh Python = Python3Khan
Đã trả lời ngày 9 tháng 2 năm 2018 lúc 10:3210 silver badges11 bronze badges
0
Khankhan
- 1.19410 Huy hiệu bạc11 Huy hiệu đồng
- Chỉ cần làm theo các bước này để giúp thay đổi Python mặc định thành phiên bản Python mới nâng cấp. Làm việc tốt cho tôi.
2 Cài đặt phiên bản Python mới nhất mà bạn muốn$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000
3 Nhập thư mục gốc nơi cài đặt Python$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000
4 hoặc$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000
5. Hủy liên kết Python mặc định hiện tại$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000
6 Liên kết Phiên bản Python đã tải xuống mớiDec 30, 2019 at 9:19
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000
7 Kiểm tra phiên bản Python mới và bạn tốt để đi$ python
9Đã trả lời ngày 30 tháng 12 năm 2019 lúc 9:19
$ python
7Lúc đầu cài đặt Python3 và PIP3
$ python3
1Sau đó, trong cuộc chạy đầu cuối của bạnNov 25, 2019 at 18:32
Kiểm tra phiên bản Python trong máy của bạn.
Đã trả lời ngày 25 tháng 11 năm 2019 lúc 18:32
Để thêm thêm, bạn cũng có thể thêm bí danh cho PIP [trong .bashrc hoặc bash_aliases]:
bí danh pip = 'pip3'
alias python='python3.6'
Bạn nhiều người thấy rằng một bản cài đặt sạch của Python3 thực sự chỉ vào Python3.x để bạn có thể cần:Mar 28, 2018 at 14:28
bí danh pip = 'pip3.6' bí danh python = 'python3.6'Paraic
Đã trả lời ngày 28 tháng 3 năm 2018 lúc 14:281 silver badge6 bronze badges
Paraicparaic
$ python3
21371 Huy hiệu bạc6 Huy hiệu đồng
Đây là một cách đơn giản làm việc cho tôi.
Bạn có thể thay đổi
ModuleNotFoundError: No module named 'apt_pkg'
7 cho đường dẫn đến Python3 [hoặc phiên bản bạn muốn].Jan 15, 2021 at 14:18
Nhưng hãy nhớ rằng
$ sudo update-alternatives --config python3
0 có lẽ là lựa chọn tốt nhất.cbcramĐã trả lời ngày 15 tháng 1 năm 2021 lúc 14:182 silver badges5 bronze badges
cbcramcbcram
1672 Huy hiệu bạc5 Huy hiệu Đồng
Như đã nói,
$ sudo update-alternatives --config python3
0 nhu cầu và lập luận.
Bạn có liên kết [
6], tên [ModuleNotFoundError: No module named 'apt_pkg'
2] và đường dẫn [$ sudo update-alternatives --config python3
7], bạn đang thiếu ưu tiên.ModuleNotFoundError: No module named 'apt_pkg'
$ sudo update-alternatives --config python3
4 nói:là một số nguyên; Các tùy chọn có số cao hơn có mức độ ưu tiên cao hơn ở chế độ tự động.Feb 1, 2017 at 19:30
Vì vậy, chỉ cần đặt một
$ sudo update-alternatives --config python3
5 hoặc một cái gì đó ở cuối$ python3
3Đã trả lời ngày 1 tháng 2 năm 2017 lúc 19:30
$ python3
4Nhận con đường Python từOct 16, 2018 at 4:26
Sau đó đặt phiên bản Python của bạn
$ python3
5Đã trả lời ngày 16 tháng 10 năm 2018 lúc 4:26
$ python3
6Để thay đổi Python 3.6.8 như mặc định trong Ubuntu 18.04 từ Python 2.7, bạn có thể thử công cụ dòng lệnh
$ sudo update-alternatives --config python3
0.Nếu bạn gặp lỗi "Không có lựa chọn thay thế nào cho Python" thì hãy tự thiết lập một giải pháp thay thế bằng lệnh sau:
Thay đổi đường dẫn
ModuleNotFoundError: No module named 'apt_pkg'
7 thành phiên bản Python mong muốn của bạn cho phù hợp.Đối số cuối cùng được chỉ định là ưu tiên của nó, nếu không có lựa chọn thay thế thủ công nào được thực hiện thay thế với số ưu tiên cao nhất sẽ được đặt. Trong trường hợp của chúng tôi, chúng tôi đã đặt mức độ ưu tiên 2 cho $ sudo update-alternatives --config python3
8 và kết quả là $ sudo update-alternatives --config python3
8 được đặt làm phiên bản Python mặc định tự động bằng lệnh Cập nhật-Diễn hóa.Chúng tôi có thể chuyển đổi bất cứ lúc nào giữa các phiên bản thay thế Python được liệt kê ở trên sử dụng lệnh bên dưới và nhập số lựa chọn:Jun 27, 2020 at 12:24
$ python3
7$ python3
8Đã trả lời ngày 27 tháng 6 năm 2020 lúc 12:24
Đối với một cách tiếp cận duy nhất không xâm lấn, người dùng hiện tại:Mar 22, 2019 at 8:52
Tdihptdihptdihp
2.2692 Huy hiệu vàng22 Huy hiệu bạc40 Huy hiệu đồng2 gold badges22 silver badges40 bronze badges
Chỉ cần xóa
update-alternatives --remove python /usr/bin/python2
update-alternatives --install /usr/bin/python python /usr/bin/python3
2:$ python3
9Và cài đặt
ModuleNotFoundError: No module named 'apt_pkg'
5:$ python
4Nó sẽ tự động hóa quá trình chuyển sang Python3 mới. Tùy chọn bạn có thể thoát khỏi các gói còn lại sau:
alias python3=python3.7
1Đã trả lời ngày 25 tháng 5 năm 2020 lúc 8:22May 25, 2020 at 8:22
0
Đặt mức độ ưu tiên cho Python mặc định trong thiết bị đầu cuối Linux bằng cách thêm điều này:
alias python3=python3.7
2Ở đây, chúng tôi đặt
$ sudo update-alternatives --config python3
5 để có ưu tiên 10 và update-alternatives: error: no alternatives for python3
4 thành ưu tiên 1. Điều này sẽ làm cho $ sudo update-alternatives --config python3
5 trở thành python mặc định. Nếu bạn muốn python2 làm mặc định thì hãy ưu tiên python2 cao hơn thì python3
Đã trả lời ngày 6 tháng 11 năm 2020 lúc 4:52Nov 6, 2020 at 4:52
alias python3=python3.7
3Đã trả lời ngày 1 tháng 10 năm 2021 lúc 9:11Oct 1, 2021 at 9:11
1
alias python3=python3.7
4Đã trả lời ngày 3 tháng 1 lúc 3:46Jan 3 at 3:46
devpdevpdevp
2.1522 Huy hiệu vàng13 Huy hiệu bạc23 Huy hiệu đồng2 gold badges13 silver badges23 bronze badges
Cách tốt nhất trong Ubuntu 18.04 sẽ hoạt động cho tất cả người dùng là
alias python3=python3.7
5Lưu các thay đổi và khởi động lại.
Sau khi khởi động lại phiên bản Python 3 mà bạn có trong hệ thống cùng với Python 2.7 sẽ được coi là mặc định. Bạn có thể cụ thể hơn bằng cách nói những điều sau đây trong bí danh nếu bạn có nhiều phiên bản Python 3.
alias python3=python3.7
6Đã trả lời ngày 22 tháng 3 năm 2019 lúc 10:12Mar 22, 2019 at 10:12
Mian Asbat Ahmadmian Asbat AhmadMian Asbat Ahmad
3.06810 Huy hiệu vàng39 Huy hiệu bạc68 Huy hiệu Đồng10 gold badges39 silver badges68 bronze badges
Bạn đã không bao gồm đối số ưu tiên
alias python3=python3.7
7Bạn có thể thay thế 5 bằng bất kỳ ưu tiên nào bạn muốn. Một thay thế ưu tiên cao hơn được ưu tiên hơn mức ưu tiên thấp hơn.
Đã trả lời ngày 2 tháng 9 năm 2020 lúc 12:26Sep 2, 2020 at 12:26
Nếu có khả năng sử dụng trực tiếp phiên bản Python cụ thể, tôi sẽ sử dụng nó so với giải pháp
$ sudo update-alternatives --config python3
0 và update-alternatives --remove python /usr/bin/python2
update-alternatives --install /usr/bin/python python /usr/bin/python3
8.Ex.
alias python3=python3.7
8update-alternatives --remove python /usr/bin/python2
update-alternatives --install /usr/bin/python python /usr/bin/python3
9 thực hiện mô -đun cụ thể cho phiên bản Python cụ thể đó. Dòng đầu tiên sẽ cài đặt pytest cho phiên bản và người dùng cụ thể đó ở vị trí có thể $ python
00Đã trả lời ngày 15 tháng 12 năm 2021 lúc 1:21Dec 15, 2021 at 1:21
JanpojanpoJanPo
1651 Huy hiệu bạc7 Huy hiệu đồng1 silver badge7 bronze badges
Trong trường hợp của tôi, nó đã xảy ra khi tôi chạy lệnh này trong thiết bị đầu cuối "bí danh python = python3" của tôi
Đã trả lời ngày 29 tháng 5 năm 2021 lúc 3:11May 29, 2021 at 3:11
Lúc đầu, đảm bảo Python3 được cài đặt trên máy tính của bạn
Chuyển đến thiết bị đầu cuối của bạn và loại:
$ python
01 để đi đến thư mục nhà của bạnNếu bạn chưa thiết lập
$ python
02 của mình, hãy nhập $ python
03 để tạo .bash_profile của bạn.Hoặc, nhập
$ python
04 để chỉnh sửa tệp.Sao chép và lưu
ModuleNotFoundError: No module named 'apt_pkg'
0 trong .Bash_profile.Đóng và mở lại thiết bị đầu cuối của bạn. Sau đó nhập lệnh sau để kiểm tra xem Python3 có phải là phiên bản mặc định của bạn không:Python3 is your default version now:
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000
7Bạn sẽ thấy Python 3.x.y là phiên bản mặc định của bạn.python 3.x.y is your default version.
Cheers!
Đã trả lời ngày 21 tháng 9 năm 2019 lúc 19:13Sep 21, 2019 at 19:13
1