Hướng dẫn can i change python version in virtualenv? - tôi có thể thay đổi phiên bản python trong virtualenv không?

[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ừ

https://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ể:

https://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:

  1. Hủy kích hoạt phiên môi trường hiện tại của bạn.

  2. 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.

  3. Xóa VirtualEnv bằng lệnh trình bao:

    $ 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
    
    2

    Điều này sẽ loại bỏ ảo, nhưng để lại các tệp dự án của bạn.

  4. Tạo một ảo ảnh mới với phiên bản Python mà bạn muốn.

    Ví dụ:

    $ 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
    
    3

    Bạn có thể chỉ định phiên bản Python với cờ và phiên bản

    $ 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
    
    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

  5. 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ụ:

    $ 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
    
    6


Đọc các tài liệu để biết thêm chi tiết: http://virtualenvwrapper.readthedocs.io/en/latest/

Tôi có thể hạ cấp phiên bản Python trong VirtualEnv không?

Bạn cần gỡ cài đặt phiên bản Python hiện có và cài đặt lại phiên bản Python cần thiết và thiết lập môi trường của bạn..

Tôi có thể nâng cấp phiên bản Python trong VirtualEnv không?

Tôi có thể nâng cấp Python trong VENV không?Bạn không thể nâng cấp lên phiên bản Python mà bạn chưa có trên hệ thống của mình ở đâu đó, vì vậy hãy đảm bảo có được phiên bản bạn muốn, trước tiên, sau đó làm cho tất cả các VEN bạn muốn từ nó.You can't upgrade to a Python version you don't already have on your system somewhere, so make sure to get the version you want, first, then make all the venvs you want from it.

Virtualenv phiên bản python nào?

Tạo một môi trường ảo Python VirtualenV hỗ trợ các phiên bản Python cũ hơn và cần được cài đặt bằng lệnh PIP.Ngược lại, VENV chỉ được sử dụng với Python 3.3 trở lên và được bao gồm trong thư viện tiêu chuẩn Python, không yêu cầu cài đặt.Python 3.3 or higher and is included in the Python standard library, requiring no installation.