Điểm:0

Chỉ thay đổi phiên bản python trong một môi trường ảo duy nhất

lá cờ th

Thiết bị đầu cuối Gnome sẽ chỉ chạy khi trăn3.6 Được sử dụng. Vì vậy, tôi đã tạo một môi trường và cài đặt trăn3.9 như vậy:

#!/usr/bin/env bash

sudo apt cài đặt python3-venv
python3 -m venv test_env
nguồn test_env/bin/kích hoạt

Sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get cập nhật
danh sách phù hợp | grep python3.9
Sudo apt-get cài đặt python3.9
Sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
Sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2
Sudo update-alternatives --config python3
python3 -V

Tuy nhiên, điều này khiến toàn bộ hệ thống chuyển sang trăn3.9 và ngăn không cho thiết bị đầu cuối hoạt động. Làm thế nào tôi có thể ngăn chặn điều này?

Bây giờ, đang chạy nguồn ~/.bashrc cho phép thiết bị đầu cuối không venv tiếp tục hoạt động. Và con trăn -V báo cáo phiên bản chính xác của 3.6. Nhưng nếu tôi đóng cửa sổ, tôi không thể mở lại. Tôi phải sử dụng một thiết bị đầu cuối trong IDE của mình để chọn lại phiên bản cũ hơn của python. Đang chạy:

Sudo update-alternatives --install /usr/bin/python3 python3

Cho thấy rằng trên thực tế, phiên bản 3.9 đã được chọn. Mặc dù con trăn -V báo cáo thực tế đang chạy trăn3.6:

# Trăn 3.6.9


# Trạng thái Ưu tiên Đường dẫn Lựa chọn
# --------------------------------------------- -----------
# 0 /usr/bin/python3.9 2 chế độ tự động
# 1 /usr/bin/python3.10 2 chế độ thủ công
# 2 /usr/bin/python3.6 1 chế độ thủ công
#* 3 /usr/bin/python3.9 2 chế độ thủ công
vanadium avatar
lá cờ cn
Bạn đã thiết kế thủ tục này cho mình? Thêm PPA sau đó cài đặt python rõ ràng sẽ cập nhật phiên bản hệ thống của python và phá vỡ hệ thống của bạn.
Solebay Sharp avatar
lá cờ th
Không, tôi không biết, và vì vậy tôi không biết `PPA` đã làm gì. Tôi nghĩ rằng vấn đề là cách tôi thiết lập venv của mình. Tôi có thể xóa `PPA` không?
vanadium avatar
lá cờ cn
Có, bằng cách sử dụng ppa-purge, bạn có thể xóa PPA và hoàn tác các thay đổi. Thật không may, tôi không thể trợ giúp cụ thể với việc thiết lập các môi trường python khác nhau.
lá cờ us
Việc sử dụng PPA của Deadsnakes không **không** cập nhật phiên bản hệ thống của python. Cả hai phiên bản tồn tại đồng thời.
Điểm:0
lá cờ th

Như Vanadi đã vạch ra, sử dụng hợp đồng mua bán điện cập nhật phiên bản hệ thống của python. Vì vậy, ngay cả từ venv, tôi đã tạo ra một sự thay đổi toàn cầu.

Giải pháp khá rõ ràng; Python3 không chạy Python3, nó chạy bất kỳ phiên bản nào của python3 được cài đặt trên hệ thống, vì vậy trong trường hợp của tôi...

python3 -m venv test_env

Đã thiết lập một venv python3.6. Đang chạy...

python3.9 -m venv test_env

Có vẻ như đã thiết lập chính xác một venv python3.9. Để hiểu rõ vấn đề, để chạy mã python trong ATOM IDE bằng Hydrogen, trong venv 3.9 của tôi, tôi phải chạy...

cài đặt python3.9 -m ipykernel --user --name=atom_venv_py

Vì vậy, đây chỉ là trường hợp chỉ định phiên bản python nào bạn muốn sử dụng trong mọi trường hợp phiên bản đó khác với phiên bản sys (hạt nhân IPython là phần phụ trợ thực thi Python cho Jupyter cho phép Hyrdogen chạy).

lá cờ us
Không. Việc sử dụng PPA của Deadsnakes để cài đặt python3.9 sẽ **không** thay thế phiên bản hệ thống của python.
Solebay Sharp avatar
lá cờ th
Vì vậy, chúng tồn tại đồng thời, Điều gì quy định phiên bản nào của python được sử dụng?
lá cờ us
Khi bạn chạy `python3`, bạn sẽ nhận được python mặc định của hệ thống (là 3.6 trong Ubuntu 18.04). Khi bạn chạy `python3.9`, bạn nhận được python3.9. Và rõ ràng, khi bạn chạy `python3.6`, bạn lại nhận được python3.6. Tôi chưa thử, nhưng như bạn đã viết trong câu trả lời của mình, `python3.9 -m venv test_env` sẽ cho kết quả như mong muốn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.