[Tháng 11 năm 2019] Tôi cần cài đặt Môi trường Python 3.7 [Env] trên hệ thống Arch Linux dựa trên Python 3.8 của tôi. Python 3.7 không còn trên hệ thống, vì vậy tôi không thể hạ cấp Python, để cài đặt một gói mà tôi cần.
Hơn nữa, tôi muốn sử dụng gói / python 3.7 bên trong môi trường ảo [VENV]. Đây là cách tôi đã làm điều đó.
Tải xuống các tệp nguồn phiên bản Python:
Tôi đã tải xuống các tệp nguồn Python 3.7.4 từ
//www.python.org/downloads/source/
đến
/mnt/Vancouver/apps/python_versions/src/Python-3.7.4.tgz
Sau đó tôi đã trích xuất kho lưu trữ [tệp nguồn] đó vào
/mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
Installation:
[Lưu ý: Trong hệ thống của tôi env, không phải là một venv.]
cd /mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
time ./configure ## 17 sec
time make ## 1 min 51 sec
time sudo make install ## 18 sec
time make clean ## 0.3 sec
Kiểm tra các phiên bản Python đã cài đặt:
$ which python
/usr/bin/python
$ python --version
Python 3.8.0
$ which python3.7
/usr/local/bin/python3.7
$ python ## Python 3.8 [system / env]
Python 3.8.0 [default, Oct 23 2019, 18:51:26]
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ python3.7 ## newly-installed Python 3.7 package
Python 3.7.4 [default, Nov 20 2019, 11:36:53]
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print[sys.version]
3.7.4 [default, Nov 20 2019, 11:36:53]
[GCC 9.2.0]
>>>
$ python3.7 --version
Python 3.7.4
Cách tạo VETV cho phiên bản Python cụ thể:
//docs.python.org/3/tutorial/venv.html
12.2. Tạo môi trường ảo
Mô -đun được sử dụng để tạo và quản lý môi trường ảo được gọi là
venv
.venv
thường sẽ cài đặt phiên bản Python gần đây nhất mà bạn có sẵn. Nếu bạn có nhiều phiên bản Python trên hệ thống của mình, bạn có thể chọn phiên bản Python cụ thể bằng cách chạy Python3 hoặc bất kỳ phiên bản nào bạn muốn.Để tạo một môi trường ảo, hãy quyết định một thư mục nơi bạn muốn đặt nó và chạy mô -đun VENV làm tập lệnh với đường dẫn thư mục:
python3 -m venv tutorial-env
Điều này sẽ tạo thư mục ____10 nếu nó không tồn tại và cũng tạo các thư mục bên trong nó chứa một bản sao của trình thông dịch Python, thư viện tiêu chuẩn và các tệp hỗ trợ khác nhau. ...
Tạo Python 3.7 VENV [trên một hệ thống / hệ thống hoạt động Python 3.8]:
python3.7 -m venv ~/venv/py3.7 ## create Python 3.7-based venv
source ~/venv/py3.7/bin/activate ## activate that venv
deactivate ## deactivate that venv [when done, there]
Đã thêm vào
$ which python
/usr/bin/python
$ python --version
Python 3.8.0
$ which python3.7
/usr/local/bin/python3.7
$ python ## Python 3.8 [system / env]
Python 3.8.0 [default, Oct 23 2019, 18:51:26]
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ python3.7 ## newly-installed Python 3.7 package
Python 3.7.4 [default, Nov 20 2019, 11:36:53]
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print[sys.version]
3.7.4 [default, Nov 20 2019, 11:36:53]
[GCC 9.2.0]
>>>
$ python3.7 --version
Python 3.7.4
1:alias p37='echo " [Python 3.7 venv [source ~/venv/py3.7/bin/activate]]" && source ~/venv/py3.7/bin/activate'
Kiểm tra Python 3.7 VENV:
$ p37
[Python 3.7 venv [source ~/venv/py3.7/bin/activate]]
[py3.7]$ python --version
Python 3.7.4
[py3.7]$ python
Python 3.7.4 [default, Nov 20 2019, 11:36:53]
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print[sys.version]
3.7.4 [default, Nov 20 2019, 11:36:53]
[GCC 9.2.0]
>>>
Đây là một bài viết ngắn mô tả cách bạn có thể thay đổi phiên bản phiên dịch Python trong VirtualEnv hiện có. Nếu bạn bắt đầu làm việc trong một dự án và nhận ra bạn ước bạn bắt đầu với Python 2 hoặc bạn bắt đầu với phiên bản 2 và ước bạn bắt đầu với phiên bản 3, điều này có thể dễ dàng thay đổi.
Trong bài viết này, tôi sử dụng VirtualEnvWrapper để quản lý Python VirtualEnvs.
Điều đầu tiên cần xem xét là sử dụng hai vị trí thư mục cho ảo của bạn. Một cho các thư viện và gói của bạn và một vị trí khác cho các tệp dự án của bạn. Đây là chìa khóa để có thể ngắt kết nối và thay đổi trình thông dịch Python của bạn. Giữ cho các tập tin dự án của bạn riêng biệt làm cho phiên bản kiểm soát cũng dễ dàng hơn một chút.
VirtualEnvWrapper đi kèm với một số lệnh thuận tiện để quản lý ảo của bạn.
Để thay đổi phiên bản Python của bạn:
Hủy kích hoạt phiên môi trường hiện tại của bạn.
Nếu bạn có nhiều gói hoặc thư viện được cài đặt, sẽ là một ý tưởng tốt để thực hiện một tệp yêu cầu.txt. Hãy nhớ chỉnh sửa phiên bản khi cần thiết.
Xóa VirtualEnv bằng lệnh trình bao:
2$ which python /usr/bin/python $ python --version Python 3.8.0 $ which python3.7 /usr/local/bin/python3.7 $ python ## Python 3.8 [system / env] Python 3.8.0 [default, Oct 23 2019, 18:51:26] [GCC 9.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> $ python3.7 ## newly-installed Python 3.7 package Python 3.7.4 [default, Nov 20 2019, 11:36:53] [GCC 9.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> print[sys.version] 3.7.4 [default, Nov 20 2019, 11:36:53] [GCC 9.2.0] >>> $ python3.7 --version Python 3.7.4
Điều này sẽ loại bỏ ảo, nhưng để lại các tệp dự án của bạn.
Tạo một ảo ảnh mới với phiên bản Python mà bạn muốn.
Ví dụ:
3$ which python /usr/bin/python $ python --version Python 3.8.0 $ which python3.7 /usr/local/bin/python3.7 $ python ## Python 3.8 [system / env] Python 3.8.0 [default, Oct 23 2019, 18:51:26] [GCC 9.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> $ python3.7 ## newly-installed Python 3.7 package Python 3.7.4 [default, Nov 20 2019, 11:36:53] [GCC 9.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> print[sys.version] 3.7.4 [default, Nov 20 2019, 11:36:53] [GCC 9.2.0] >>> $ python3.7 --version Python 3.7.4
Bạn có thể chỉ định phiên bản Python với cờ và phiên bản
4. Nếu bạn có tệp yêu cầu.txt, bạn có thể chỉ định điều đó với$ which python /usr/bin/python $ python --version Python 3.8.0 $ which python3.7 /usr/local/bin/python3.7 $ python ## Python 3.8 [system / env] Python 3.8.0 [default, Oct 23 2019, 18:51:26] [GCC 9.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> $ python3.7 ## newly-installed Python 3.7 package Python 3.7.4 [default, Nov 20 2019, 11:36:53] [GCC 9.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> print[sys.version] 3.7.4 [default, Nov 20 2019, 11:36:53] [GCC 9.2.0] >>> $ python3.7 --version Python 3.7.4
5$ which python /usr/bin/python $ python --version Python 3.8.0 $ which python3.7 /usr/local/bin/python3.7 $ python ## Python 3.8 [system / env] Python 3.8.0 [default, Oct 23 2019, 18:51:26] [GCC 9.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> $ python3.7 ## newly-installed Python 3.7 package Python 3.7.4 [default, Nov 20 2019, 11:36:53] [GCC 9.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> print[sys.version] 3.7.4 [default, Nov 20 2019, 11:36:53] [GCC 9.2.0] >>> $ python3.7 --version Python 3.7.4
Bây giờ liên kết VirtualEnv mới của bạn với thư mục dự án của bạn. Bạn có thể chỉ định các đường dẫn đầy đủ, nhưng việc kích hoạt ảo mới của bạn sẽ dễ dàng hơn và nằm trong thư mục dự án của bạn. Sau đó, chạy lệnh:
Ví dụ:
6$ which python /usr/bin/python $ python --version Python 3.8.0 $ which python3.7 /usr/local/bin/python3.7 $ python ## Python 3.8 [system / env] Python 3.8.0 [default, Oct 23 2019, 18:51:26] [GCC 9.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> $ python3.7 ## newly-installed Python 3.7 package Python 3.7.4 [default, Nov 20 2019, 11:36:53] [GCC 9.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> print[sys.version] 3.7.4 [default, Nov 20 2019, 11:36:53] [GCC 9.2.0] >>> $ python3.7 --version Python 3.7.4
Đọc các tài liệu để biết thêm chi tiết: //virtualenvwrapper.readthedocs.io/en/latest/