Bí danh python thành python3

Bài viết này hướng dẫn cách cài đặt Python 3,

$ su -
# yum install @development
7,
$ su -
# yum install @development
8,
$ su -
# yum install @development
9 và
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
0 trên Red Hat Enterprise Linux 7. Sau khi làm theo các bước trong bài viết này, bạn sẽ có thể làm theo nhiều hướng dẫn và hướng dẫn về Python bằng RHEL. Ghi chú. Để cài đặt RHEL 8, hãy xem Python trên RHEL 8

Show

Sử dụng môi trường ảo Python là cách tốt nhất để cô lập các phụ thuộc dành riêng cho dự án và tạo môi trường có thể tái tạo. Các mẹo và Câu hỏi thường gặp khác để làm việc với Python và bộ sưu tập phần mềm trên RHEL 7 cũng được đề cập

Có một số cách khác nhau để cài đặt Python 3 trên RHEL. Bài viết này sử dụng Bộ sưu tập phần mềm Red Hat vì chúng cung cấp cho bạn bản cài đặt Python hiện tại được Red Hat xây dựng và hỗ trợ. Trong quá trình phát triển, hỗ trợ có vẻ không quan trọng đối với bạn. Tuy nhiên, hỗ trợ là quan trọng đối với những người phải triển khai và vận hành các ứng dụng bạn viết. Để hiểu tại sao điều này lại quan trọng, hãy xem xét điều gì sẽ xảy ra khi ứng dụng của bạn đang trong quá trình sản xuất và lỗ hổng bảo mật quan trọng trong thư viện lõi (ví dụ SSL/TLS) được phát hiện. Loại kịch bản này là lý do tại sao nhiều doanh nghiệp sử dụng Red Hat

Trăn 3. 6 được sử dụng trong bài viết này. Đó là bản phát hành ổn định, gần đây nhất khi nó được viết. Tuy nhiên, bạn sẽ có thể sử dụng các hướng dẫn này cho bất kỳ phiên bản Python nào trong Bộ sưu tập phần mềm Red Hat bao gồm 2. 7, 3. 4, 3. 5 và các bộ sưu tập trong tương lai như 3. 7

Trong bài viết này, các chủ đề sau được thảo luận

  1. (tóm tắt các bước)

TL; DR

Dưới đây là các bước cơ bản để bạn có thể bắt đầu. Xem bên dưới để được giải thích và biết thêm chi tiết

Cách cài đặt Python 3 trên RHEL

  1. Trở thành
    $ su -
    # subscription-manager repos \
     --enable rhel-7-server-optional-rpms \
     --enable rhel-server-rhscl-7-rpms
    6
  2. Kích hoạt kho lưu trữ phần mềm
    $ su -
    # subscription-manager repos \
     --enable rhel-7-server-optional-rpms \
     --enable rhel-server-rhscl-7-rpms
    7 và
    $ su -
    # subscription-manager repos \
     --enable rhel-7-server-optional-rpms \
     --enable rhel-server-rhscl-7-rpms
    8 bằng cách sử dụng
    $ su -
    # subscription-manager repos \
     --enable rhel-7-server-optional-rpms \
     --enable rhel-server-rhscl-7-rpms
    9
  3. Sử dụng
    # subscription-manager repos --list
    0 để cài đặt
    # subscription-manager repos --list
    1. Điều này đảm bảo rằng bạn đã có GCC,
    # subscription-manager repos --list
    2,
    # subscription-manager repos --list
    3, v.v. để bạn có thể xây dựng bất kỳ mô-đun nào chứa mã đã biên dịch
  4. Sử dụng
    # subscription-manager repos --list
    0 để cài đặt
    # subscription-manager repos --list
    5
  5. Không bắt buộc. Sử dụng
    # subscription-manager repos --list
    0 để cài đặt
    # subscription-manager repos --list
    7,
    # subscription-manager repos --list
    8,
    # subscription-manager repos --list
    9 và
    # subscription-manager repos --list-enabled
    0 từ RHSCL RPM
$ su -
# subscription-manager repos --enable rhel-7-server-optional-rpms \
  --enable rhel-server-rhscl-7-rpms
# yum -y install @development
# yum -y install rh-python36

# yum -y install rh-python36-numpy \
 rh-python36-scipy \ 
 rh-python36-python-tools \
 rh-python36-python-six

# exit

Sử dụng Python 3 trên RHEL

  1. Dưới ID người dùng bình thường của bạn, hãy chạy
    # subscription-manager repos --list-enabled
    1 để thêm
    # subscription-manager repos --list-enabled
    2 vào (các) đường dẫn của bạn
  2. Tạo một môi trường ảo Python và kích hoạt nó. (Ghi chú. lời nhắc của bạn đã thay đổi để hiển thị môi trường ảo. )
  3. Cài đặt bất kỳ mô-đun bổ sung nào bạn cần với
    $ su -
    # yum install @development
    7 trong một môi trường biệt lập mà không bị
    $ su -
    # subscription-manager repos \
     --enable rhel-7-server-optional-rpms \
     --enable rhel-server-rhscl-7-rpms
    6
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...

Nếu bạn bắt đầu một phiên mới, đây là các bước để sử dụng môi trường ảo của bạn

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate

 

Tại sao nên sử dụng Bộ sưu tập phần mềm Red Hat

Lợi ích của việc sử dụng Bộ sưu tập phần mềm Red Hat là bạn có thể cài đặt nhiều phiên bản Python cùng lúc với Python 2 cơ sở. 7 được vận chuyển cùng với RHEL 7. Bạn có thể dễ dàng chuyển đổi giữa các phiên bản với

# subscription-manager repos --list-enabled
1

Ghi chú. Các gói ổn định mới nhất cho. Net Core, Go, Rust, PHP 7, Ruby 2. 5, GCC, Clang/LLVM, Nginx, MongoDB, MariaDB, PostgreSQL, v.v đều có thể cài đặt

# subscription-manager repos --list
0 dưới dạng bộ sưu tập phần mềm. Vì vậy, bạn nên dành thời gian để làm quen với các bộ sưu tập phần mềm

Sử dụng bộ sưu tập phần mềm yêu cầu thêm một bước vì bạn phải kích hoạt bộ sưu tập bạn muốn sử dụng. Việc kích hoạt chỉ cần thêm các đường dẫn cần thiết (_______18_______7,

# subscription-manager repos --list-enabled
8,
# subscription-manager repos --list-enabled
9) vào môi trường của bạn. Khi bạn đã hiểu rõ về nó, các bộ sưu tập phần mềm khá dễ sử dụng. Nó thực sự hữu ích để hiểu cách thức hoạt động của các thay đổi biến môi trường trong Linux/UNIX. Các thay đổi chỉ có thể được thực hiện đối với quy trình hiện tại. Khi một tiến trình con được tạo ra, nó sẽ kế thừa môi trường của tiến trình cha. Bất kỳ thay đổi môi trường nào được thực hiện trong cha mẹ sau khi đứa trẻ được tạo sẽ không ảnh hưởng đến đứa trẻ. Do đó, những thay đổi được thực hiện bởi
# subscription-manager repos --list-enabled
1 sẽ chỉ ảnh hưởng đến phiên cuối hiện tại hoặc bất kỳ thứ gì bắt đầu từ phiên đó. Bài viết này cũng chỉ ra cách bạn có thể kích hoạt vĩnh viễn bộ sưu tập phần mềm cho tài khoản người dùng của mình

 


Điều kiện tiên quyết cài đặt

Cài đặt các công cụ phát triển bao gồm GCC, make và git

Nếu bạn cài đặt các mô-đun phụ thuộc vào mã đã biên dịch, bạn sẽ cần các công cụ để biên dịch chúng. Nếu bạn chưa cài đặt các công cụ phát triển, hãy chạy lệnh sau

$ su -
# yum install @development

Kích hoạt repo với các công cụ dành cho nhà phát triển bổ sung

Mặc dù các kho phần mềm RHEL mặc định/cơ sở có nhiều công cụ phát triển, đây là những phiên bản cũ hơn được cung cấp cùng với HĐH và được hỗ trợ cho vòng đời 10 năm đầy đủ của HĐH. Các gói được cập nhật thường xuyên hơn và có vòng đời hỗ trợ khác được phân phối trong các kho lưu trữ khác không được bật theo mặc định

Bộ sưu tập phần mềm Red Hat nằm trong kho lưu trữ

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
7. Các gói RHSCL có một số phụ thuộc vào các gói trong kho lưu trữ
# yum install rh-python36
2, vì vậy bạn cần kích hoạt cả hai

Để kích hoạt các kho lưu trữ bổ sung, hãy chạy các lệnh sau như

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
6

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms

ghi chú

  • Bạn có thể nhập tất cả ở trên trên một dòng mà không có dấu gạch chéo ngược. Dấu gạch chéo ngược là cần thiết nếu bạn muốn sử dụng nhiều dòng để dễ đọc
  • Nếu bạn đang sử dụng biến thể máy trạm của RHEL, hãy thay đổi
    # yum install rh-python36
    4 thành
    # yum install rh-python36
    5
  • Lệnh này chỉ cần được chạy một lần. Các repo sẽ vẫn được kích hoạt. Tất cả các kho lưu trữ đã bật sẽ được tìm kiếm bởi
    # subscription-manager repos --list
    0 khi cài đặt hoặc cập nhật phần mềm
  • Đăng ký RHEL miễn phí dành cho nhà phát triển bao gồm quyền truy cập vào tất cả các kho lưu trữ này và biến thể máy chủ của RHEL. Biến thể máy chủ là một superset
  • Để biết thêm thông tin, hãy xem Câu hỏi thường gặp về đăng ký miễn phí

Để xem repo nào có sẵn cho đăng ký hiện tại của bạn, hãy chạy lệnh sau

________số 8_______

Để xem kho lưu trữ nào được bật, hãy sử dụng

# yum install rh-python36
7

# subscription-manager repos --list-enabled

Cài đặt Python3

Bây giờ bạn có thể cài đặt Python 3. 6 (hoặc các phiên bản khác trong RHSCL) với

# subscription-manager repos --list
0

# yum install rh-python36

ghi chú

  • Các gói này sẽ cài đặt trong
    # yum install rh-python36
    9
  • Chúng sẽ không được thêm vào đường dẫn của bạn cho đến khi bạn chạy
    # subscription-manager repos --list-enabled
    1. Xem bên dưới
  • Đối với các phiên bản khác của Python, hãy sử dụng tên sau đây làm tên gói/bộ sưu tập
    Trăn 3. 5.
    # yum install rh-python36-numpy \
     rh-python36-scipy \ 
     rh-python36-python-tools \
     rh-python36-python-six
    1
    Trăn 3. 4.
    # yum install rh-python36-numpy \
     rh-python36-scipy \ 
     rh-python36-python-tools \
     rh-python36-python-six
    2
    Trăn 2. 7. 13.
    # yum install rh-python36-numpy \
     rh-python36-scipy \ 
     rh-python36-python-tools \
     rh-python36-python-six
    3
  • Một số gói bổ sung sẽ được cài đặt dưới dạng phụ thuộc. Chúng bao gồm
    # yum install rh-python36-numpy \
     rh-python36-scipy \ 
     rh-python36-python-tools \
     rh-python36-python-six
    4,
    $ su -
    # yum install @development
    7,
    # yum install rh-python36-numpy \
     rh-python36-scipy \ 
     rh-python36-python-tools \
     rh-python36-python-six
    6 và
    $ su -
    # yum install @development
    9
  • Gói
    # yum install rh-python36-numpy \
     rh-python36-scipy \ 
     rh-python36-python-tools \
     rh-python36-python-six
    4 chứa các tệp cần thiết nếu bạn phải xây dựng bất kỳ mô-đun nào liên kết động với Python (chẳng hạn như mã C/C++)

Cài đặt các gói bổ sung

Theo tùy chọn, bạn có thể muốn cài đặt các gói RPM sau đây là một phần của bộ sưu tập phần mềm

  • công cụ Python.
    # yum install rh-python36-numpy \
     rh-python36-scipy \ 
     rh-python36-python-tools \
     rh-python36-python-six
    9 là tập hợp các công cụ đi kèm với Python 3,
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
     
    $ python -V # python now points to Python 3
    Python 3.6.3
    
    $ which python
    /opt/rh/rh-python36/root/usr/bin/python
    0 và
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
     
    $ python -V # python now points to Python 3
    Python 3.6.3
    
    $ which python
    /opt/rh/rh-python36/root/usr/bin/python
    1
  • Nặng nề.
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
     
    $ python -V # python now points to Python 3
    Python 3.6.3
    
    $ which python
    /opt/rh/rh-python36/root/usr/bin/python
    2 là một cơ sở mảng đa chiều nhanh cho Python
  • scipy.
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
     
    $ python -V # python now points to Python 3
    Python 3.6.3
    
    $ which python
    /opt/rh/rh-python36/root/usr/bin/python
    3 cung cấp các công cụ khoa học cho Python
  • Sáu.
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
     
    $ python -V # python now points to Python 3
    Python 3.6.3
    
    $ which python
    /opt/rh/rh-python36/root/usr/bin/python
    4 cung cấp các tiện ích tương thích với Python 2 và 3
  • phép thuật.
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
     
    $ python -V # python now points to Python 3
    Python 3.6.3
    
    $ which python
    /opt/rh/rh-python36/root/usr/bin/python
    5 là một thư viện ORM mô-đun và linh hoạt dành cho Python
  • PyYAML.
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
     
    $ python -V # python now points to Python 3
    Python 3.6.3
    
    $ which python
    /opt/rh/rh-python36/root/usr/bin/python
    6 là trình phân tích cú pháp YAML và trình phát cho Python
  • Simplejson.
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
     
    $ python -V # python now points to Python 3
    Python 3.6.3
    
    $ which python
    /opt/rh/rh-python36/root/usr/bin/python
    7 là một bộ mã hóa/giải mã JSON đơn giản, nhanh chóng, có thể mở rộng cho Python

Ví dụ

# yum install rh-python36-numpy \
 rh-python36-scipy \ 
 rh-python36-python-tools \
 rh-python36-python-six

 

Ghi chú. Theo mặc định, các mô-đun hệ thống sẽ không được sử dụng với môi trường ảo Python. Sử dụng tùy chọn

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3
 
$ python -V # python now points to Python 3
Python 3.6.3

$ which python
/opt/rh/rh-python36/root/usr/bin/python
8 khi tạo môi trường ảo để bao gồm các mô-đun hệ thống

 


Cách sử dụng Python 3 (# subscription-manager repos --list-enabled1)

Python 3 hiện đã được cài đặt. Bạn không cần phải chạy theo ID người dùng

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
6 nữa. Phần còn lại của các lệnh sẽ được thực thi bằng tài khoản người dùng thông thường của bạn

Như đã đề cập trước đây, bộ sưu tập phần mềm được cài đặt theo

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
01 và không được tự động thêm vào
# subscription-manager repos --list-enabled
7,
# subscription-manager repos --list-enabled
8 và
# subscription-manager repos --list-enabled
9 của bạn. Lệnh
# subscription-manager repos --list-enabled
1 sẽ thực hiện các thay đổi cần thiết và chạy lệnh. Do cách các biến môi trường hoạt động trong Linux (và UNIX), các thay đổi sẽ chỉ có hiệu lực đối với lệnh được chạy bởi scl
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
06. Bạn có thể sử dụng
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
07 làm lệnh để bắt đầu một phiên tương tác. Đây là một trong những cách phổ biến nhất (nhưng không phải là cách duy nhất) để làm việc với các bộ sưu tập phần mềm

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3
 
$ python -V # python now points to Python 3
Python 3.6.3

$ which python
/opt/rh/rh-python36/root/usr/bin/python

Ghi chú. Kích hoạt bộ sưu tập Python làm cho

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
08 trong đường dẫn của bạn, không có số phiên bản, trỏ tới Python 3.
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
09 vẫn sẽ là Python 2. Bạn vẫn có thể chạy Python 2 bằng cách gõ
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
10,
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
11 hoặc
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
09. Bạn nên sử dụng số phiên bản để tránh mọi sự mơ hồ về ý nghĩa của
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
08. Điều này cũng áp dụng cho các lệnh Python khác trong
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
14, chẳng hạn như
$ su -
# yum install @development
7,
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
16,
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
17,
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
18 và
$ su -
# yum install @development
9. Để biết thêm thông tin, hãy xem PEP 394

GHI CHÚ. Xem Cách kích hoạt vĩnh viễn bộ sưu tập phần mềm bên dưới để đưa Python 3 vĩnh viễn vào đường dẫn của bạn

 


Tạo môi trường ảo Python (cách thực hành tốt nhất)

Sử dụng môi trường ảo Python là cách tốt nhất để cô lập các phụ thuộc dành riêng cho dự án và tạo môi trường có thể tái tạo. Nói cách khác, đó là một cách để tránh xung đột phụ thuộc dẫn đến địa ngục phụ thuộc. Sử dụng môi trường ảo sẽ cho phép bạn sử dụng

$ su -
# yum install @development
7 để cài đặt bất kỳ mô-đun nào bạn cần cho dự án của mình trong một thư mục biệt lập dưới ID người dùng bình thường của bạn. Bạn có thể dễ dàng có nhiều dự án với các phụ thuộc khác nhau. Để làm việc trên một dự án cụ thể, bạn kích hoạt môi trường ảo, môi trường này sẽ thêm các thư mục phù hợp vào (các) đường dẫn của bạn

Sử dụng môi trường ảo cùng với tệp

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
21,
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
22 và tệp
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
23 sẽ cung cấp cho bạn đường dẫn đến môi trường có thể sao chép để chạy mã của bạn. Những người khác cần chạy mã của bạn có thể sử dụng tệp
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
23 mà bạn tạo để tạo môi trường phù hợp

Theo mặc định, môi trường ảo sẽ không sử dụng bất kỳ mô-đun nào được cài đặt trên hệ thống hoặc các mô-đun được cài đặt trong thư mục chính của bạn. Từ góc độ cách ly và để tạo môi trường có thể tái tạo, điều này thường được coi là hành vi đúng. Tuy nhiên, bạn có thể thay đổi điều đó bằng cách sử dụng đối số

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3
 
$ python -V # python now points to Python 3
Python 3.6.3

$ which python
/opt/rh/rh-python36/root/usr/bin/python
8

Tôi có nên sử dụng $ su - # yum install @development8 hoặc $ su - # yum install @development9 hay cái gì khác không?

Khi bạn cài đặt Python 3 từ Bộ sưu tập phần mềm Red Hat,

$ su -
# yum install @development
8,
$ su -
# yum install @development
9 và
$ su -
# yum install @development
7 sẽ được cài đặt, vì vậy bạn sẵn sàng cài đặt bất kỳ mô-đun nào bạn chọn. "" trong tài liệu Python hiện tại nói điều này

  • $ su -
    # yum install @development
    8 là công cụ tiêu chuẩn để tạo môi trường ảo và là một phần của Python kể từ Python 3. 3
  • $ su -
    # yum install @development
    9 là giải pháp thay thế của bên thứ ba (và tiền thân) cho
    $ su -
    # yum install @development
    8. Nó cho phép sử dụng môi trường ảo trên các phiên bản Python trước 3. 4, hoàn toàn không cung cấp
    $ su -
    # yum install @development
    8 hoặc không thể tự động cài đặt
    $ su -
    # yum install @development
    7 vào môi trường đã tạo

Vì vậy, đối với tất cả các phiên bản gần đây của Python 3,

$ su -
# yum install @development
8 được ưu tiên

Nếu bạn làm việc với Python 2. 7, bạn sẽ cần sử dụng

$ su -
# yum install @development
9

Các lệnh để tạo môi trường ảo chỉ khác ở tên mô-đun được sử dụng. Sau khi tạo, lệnh kích hoạt môi trường ảo là như nhau

Ghi chú. đối với

$ su -
# yum install @development
9, nên sử dụng
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
39 thay vì sử dụng lệnh
$ su -
# yum install @development
9. Xem Tránh sử dụng tập lệnh trình bao bọc Python bên dưới để biết thêm thông tin

Tạo và kích hoạt môi trường ảo với $ su - # yum install @development8

Nếu bạn chưa làm như vậy, hãy kích hoạt bộ sưu tập

# subscription-manager repos --list
5

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
0

Bây giờ hãy tạo môi trường ảo. Để tránh mọi bất ngờ, hãy sử dụng số phiên bản rõ ràng để chạy Python

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
1

Bất cứ khi nào bạn cần kích hoạt môi trường ảo, hãy chạy lệnh sau

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
2

Ghi chú. khi bạn đã kích hoạt môi trường ảo, lời nhắc của bạn sẽ thay đổi để nhắc bạn rằng bạn đang làm việc trong môi trường ảo. Ví dụ

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
3

Ghi chú. Khi bạn đăng nhập lại hoặc bắt đầu một phiên mới, bạn sẽ cần kích hoạt lại môi trường ảo bằng lệnh

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
43. Ghi chú. bạn nên chạy
# subscription-manager repos --list-enabled
1 trước khi kích hoạt môi trường ảo

Để biết thêm thông tin, hãy xem Môi trường ảo và Gói trong hướng dẫn Python 3 tại tài liệu. con trăn. tổ chức

Tạo và kích hoạt môi trường ảo với $ su - # yum install @development9

Nếu bạn chưa làm như vậy, hãy kích hoạt bộ sưu tập

# subscription-manager repos --list
5

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
0

Bây giờ hãy tạo môi trường ảo. Để tránh mọi bất ngờ, hãy sử dụng số phiên bản rõ ràng để chạy Python

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
5

Bất cứ khi nào bạn cần kích hoạt môi trường ảo, hãy chạy lệnh sau. Ghi chú. bạn nên chạy

# subscription-manager repos --list-enabled
1 trước khi kích hoạt môi trường ảo

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
2

Ghi chú. khi bạn đã kích hoạt môi trường ảo, lời nhắc của bạn sẽ thay đổi để nhắc bạn rằng bạn đang làm việc trong môi trường ảo. Ví dụ

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
3

Ghi chú. Khi bạn đăng nhập lại hoặc bắt đầu một phiên mới, bạn sẽ cần kích hoạt lại môi trường ảo bằng lệnh

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
43. Ghi chú. bạn nên chạy
# subscription-manager repos --list-enabled
1 trước khi kích hoạt môi trường ảo

Để biết thêm thông tin, hãy xem Cài đặt gói bằng pip và virtualenv trong Hướng dẫn sử dụng gói Python

Quản lý ứng dụng phụ thuộc với $ su - # subscription-manager repos \ --enable rhel-7-server-optional-rpms \ --enable rhel-server-rhscl-7-rpms0

Từ hướng dẫn Hướng dẫn sử dụng bao bì Python, Quản lý phụ thuộc ứng dụng

là người quản lý phụ thuộc cho các dự án Python. Nếu bạn đã quen thuộc với Node. js' npm hoặc gói của Ruby, về mặt tinh thần, nó tương tự như các công cụ đó. Mặc dù chỉ sử dụng một mình là đủ cho mục đích sử dụng cá nhân, nhưng Pipenv được khuyến nghị cho các dự án hợp tác vì đây là công cụ cấp cao hơn giúp đơn giản hóa việc quản lý phụ thuộc cho các trường hợp sử dụng phổ biến. "

Với pipenv, bạn không còn cần phải sử dụng riêng

$ su -
# yum install @development
7 và
$ su -
# yum install @development
9 nữa.
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
0 hiện không phải là một phần của thư viện Python 3 tiêu chuẩn hoặc Bộ sưu tập phần mềm Red Hat. Bạn có thể cài đặt nó bằng cách sử dụng
$ su -
# yum install @development
7. (Ghi chú. xem khuyến nghị bên dưới về việc không chạy
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
55 như
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
6. ) Vì
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
0 sử dụng
$ su -
# yum install @development
9 để quản lý môi trường, bạn nên cài đặt
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
0 mà không cần kích hoạt bất kỳ môi trường ảo nào. Tuy nhiên, đừng quên kích hoạt bộ sưu tập phần mềm Python 3 trước

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
8

Tạo và sử dụng các môi trường bị cô lập với

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
0 hoạt động hơi khác so với
$ su -
# yum install @development
8 hoặc
$ su -
# yum install @development
9. Một môi trường ảo sẽ tự động được tạo nếu không có
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
63 trong thư mục hiện tại khi bạn cài đặt gói đầu tiên. Tuy nhiên, bạn nên tạo một môi trường rõ ràng với phiên bản Python cụ thể mà bạn muốn sử dụng.

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
9

Để kích hoạt môi trường Pipenv, hãy cd vào thư mục đó và chạy

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
64

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
0

Pipenv tương tự như

# subscription-manager repos --list-enabled
1 ở chỗ nó không cố gắng sửa đổi môi trường hiện tại bằng
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
43, thay vào đó, nó bắt đầu trình bao mới. Để hủy kích hoạt,
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
67 trình bao. Bạn cũng có thể chạy lệnh trong môi trường pipenv bằng cách sử dụng
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
68

Để biết thêm thông tin xem

  • Quản lý phần phụ thuộc của ứng dụng trong Hướng dẫn sử dụng bao bì Python
  • Tài liệu tại Pipenv. tổ chức
  • Pipenv và Môi trường ảo tại trang web The Hitchhiker's Guide to Python

 


Mẹo chung để làm việc với Python

Lệnh $ scl enable rh-python36 bash $ python3 -V Python 3.6.3 $ python -V # python now also points to Python3 Python 3.6.3 $ mkdir ~/pydev $ cd ~/pydev $ python3 -m venv py36-venv $ source py36-venv/bin/activate (py36-venv) $ python3 -m pip install ...some modules...08. Tránh những bất ngờ bằng cách sử dụng số phiên bản

Để tránh bất ngờ, đừng gõ

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
08. Sử dụng số phiên bản rõ ràng trong lệnh, chẳng hạn như
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
71 hoặc
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
11

Ở mức tối thiểu, hãy luôn sử dụng

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
73 hoặc
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
10. Nếu bạn đang đọc bài viết này, tức là bạn đã cài đặt nhiều hơn một phiên bản Python trên hệ thống của mình. Tùy thuộc vào đường dẫn của bạn, bạn có thể nhận được các phiên bản khác nhau. Kích hoạt và hủy kích hoạt môi trường ảo, cũng như kích hoạt bộ sưu tập phần mềm, sẽ thay đổi đường dẫn của bạn, do đó, bạn có thể dễ nhầm lẫn về phiên bản mà mình sẽ nhận được khi nhập
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
08

Vấn đề tương tự xảy ra với bất kỳ tiện ích Python nào, chẳng hạn như

$ su -
# yum install @development
7 hoặc
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
16. Nên sử dụng số phiên bản, ví dụ:
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
78. Ở mức tối thiểu sử dụng số phiên bản chính.
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
79. Xem phần tiếp theo để có giải pháp thay thế mạnh mẽ hơn

 

Các tập lệnh bắt đầu bằng $ scl enable rh-python36 bash $ python3 -V Python 3.6.3 $ python -V # python now also points to Python3 Python 3.6.3 $ mkdir ~/pydev $ cd ~/pydev $ python3 -m venv py36-venv $ source py36-venv/bin/activate (py36-venv) $ python3 -m pip install ...some modules...80 có thể bị lỗi

Trong nhiều năm, lời khuyên là bắt đầu tập lệnh bằng 

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
80 để tránh các đường dẫn khó viết mã như 
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
82hoặc 
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
83 trong tập lệnh. Cấu trúc này sẽ tìm kiếm đường dẫn của bạn để tìm Python. Kích hoạt bộ sưu tập phần mềm và/hoặc kích hoạt môi trường ảo có thể thay đổi những gì trong đường dẫn của bạn. Vì vậy, tập lệnh Python 2 bắt đầu bằng cấu trúc này có thể đột ngột bị hỏng khi đường dẫn của bạn thay đổi. Khi việc sử dụng môi trường ảo tăng lên, tốt nhất là không nên sử dụng cấu trúc này nữa vì bạn có thể cài đặt Python khác với các mô-đun khác

 

Sử dụng $ scl enable rh-python36 bash $ python3 -V Python 3.6.3 $ python -V # python now also points to Python3 Python 3.6.3 $ mkdir ~/pydev $ cd ~/pydev $ python3 -m venv py36-venv $ source py36-venv/bin/activate (py36-venv) $ python3 -m pip install ...some modules...84 để xác định phiên bản Python nào sẽ được chạy

Sử dụng lệnh

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
84 để xác định đường dẫn đầy đủ sẽ được sử dụng khi bạn nhập lệnh. Điều này sẽ giúp bạn hiểu phiên bản nào của
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
08 nằm trong đường dẫn của bạn trước tiên và sẽ được chạy khi bạn nhập
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
08

ví dụ

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
1

 

Tránh các tập lệnh bao bọc Python chẳng hạn như $ su - # yum install @development9. Sử dụng tên mô-đun

Một số tiện ích Python được đặt trong đường dẫn của bạn dưới dạng tập lệnh bao bọc trong thư mục

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
14. Điều này thuận tiện vì bạn chỉ cần gõ
$ su -
# yum install @development
7 hoặc
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
91 Hầu hết các tiện ích Python thực ra chỉ là các mô-đun Python với các tập lệnh bao bọc để khởi động Python và chạy mã trong mô-đun

Sự cố với các tập lệnh trình bao bọc cũng giống như sự mơ hồ xảy ra khi nhập

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
08. Bạn sẽ nhận được phiên bản nào của
$ su -
# yum install @development
7 hoặc
$ su -
# yum install @development
9 khi nhập lệnh mà không có số phiên bản? . Một số sự cố nhỏ (khó chẩn đoán) có thể xảy ra nếu bạn vô tình trộn các phiên bản

Ghi chú. Có một số thư mục mà tập lệnh bao bọc có thể nằm trong đó. Phiên bản bạn nhận được phụ thuộc vào đường dẫn của bạn, phiên bản này sẽ thay đổi khi bạn bật bộ sưu tập phần mềm và/hoặc kích hoạt môi trường ảo. Các mô-đun được cài đặt với

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
95 đặt tập lệnh bao bọc của chúng trong ____24_______96, tập lệnh này có thể bị che khuất bằng cách kích hoạt bộ sưu tập phần mềm hoặc môi trường ảo

Bạn có thể tránh những bất ngờ từ các vấn đề về đường dẫn bằng cách chạy mô-đun trực tiếp từ một phiên bản cụ thể của Python bằng cách sử dụng tên mô-đun

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
97. Mặc dù điều này liên quan đến việc gõ nhiều hơn nhưng đây là cách tiếp cận an toàn hơn nhiều

khuyến nghị

  • Thay vì
    $ su -
    # yum install @development
    7, hãy sử dụng
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    99
  • Thay vì
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    18, hãy sử dụng
    $ scl enable rh-python36 bash
    
    $ cd ~/pydev
    $ source py36-env/bin/activate
    01
  • Thay vì
    $ su -
    # yum install @development
    9, hãy sử dụng
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    39

Không chạy $ scl enable rh-python36 bash $ python3 -V Python 3.6.3 $ python -V # python now also points to Python3 Python 3.6.3 $ mkdir ~/pydev $ cd ~/pydev $ python3 -m venv py36-venv $ source py36-venv/bin/activate (py36-venv) $ python3 -m pip install ...some modules...55 với quyền root (hoặc với $ scl enable rh-python36 bash $ cd ~/pydev $ source py36-env/bin/activate05)

Chạy

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
55 với quyền root trực tiếp hoặc bằng cách sử dụng
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
05 là một ý tưởng tồi và sẽ gây ra sự cố cho bạn vào một lúc nào đó. Một số vấn đề mà bạn có thể gặp phải là

  • Xung đột giữa các gói RPM và gói cài đặt
    $ su -
    # yum install @development
    7. Xung đột rất có thể sẽ xuất hiện khi bạn cần cài đặt gói hoặc mô-đun cố định hoặc nâng cấp. Quá trình cài đặt có thể không thành công hoặc tệ hơn là bạn có thể gặp phải tình trạng cài đặt bị hỏng. Tốt nhất là để
    # subscription-manager repos --list
    0 làm người quản lý độc quyền các tệp trong thư mục hệ thống
  • Môi trường thời gian chạy không thể dễ dàng sao chép. Có thể khó xác định mô-đun nào đã được cài đặt qua gói RPM hoặc qua
    $ su -
    # yum install @development
    7. Khi bạn muốn chạy mã Python của mình trên hệ thống khác, cần cài đặt cái gì?
  • Nâng cấp các mô-đun để giải quyết một phụ thuộc có thể phá vỡ một số mã khác. Thật không may, có nhiều trường hợp mã cần một phiên bản cụ thể của mô-đun và các phiên bản mới hơn có thể không tương thích. Chạy
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    55 dưới dạng
    $ su -
    # subscription-manager repos \
     --enable rhel-7-server-optional-rpms \
     --enable rhel-server-rhscl-7-rpms
    6 có nghĩa là tất cả các mô-đun được cài đặt trong một thư mục trên toàn hệ thống, khiến việc xác định mô-đun nào được cài đặt cho một ứng dụng cụ thể trở nên khó khăn

Sử dụng môi trường ảo sẽ cho phép bạn tách biệt các mô-đun bạn cài đặt cho từng dự án khỏi các mô-đun là một phần của cài đặt Python từ Red Hat. Sử dụng môi trường ảo được coi là phương pháp hay nhất để tạo môi trường biệt lập cung cấp các phụ thuộc cần thiết cho một mục đích cụ thể. Bạn không cần sử dụng

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
13 khi chạy
$ su -
# yum install @development
7 trong môi trường ảo vì nó sẽ mặc định cài đặt trong môi trường ảo mà bạn phải có quyền ghi vào

Nếu bạn không sử dụng môi trường ảo hoặc cần một mô-đun/công cụ khả dụng bên ngoài môi trường ảo, hãy sử dụng ____________95 để cài đặt các mô-đun trong thư mục chính của bạn

Trong trường hợp bạn nghĩ điều này quá thảm khốc, hãy xem truyện tranh xkcd này. Đừng quên di chuột để bạn thấy văn bản thay thế

 

Sử dụng môi trường ảo thay vì $ scl enable rh-python36 bash $ python3 -V Python 3.6.3 $ python -V # python now also points to Python3 Python 3.6.3 $ mkdir ~/pydev $ cd ~/pydev $ python3 -m venv py36-venv $ source py36-venv/bin/activate (py36-venv) $ python3 -m pip install ...some modules...95

Một số hướng dẫn khuyên bạn nên sử dụng

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
95. Mặc dù điều này được ưu tiên hơn là chạy
$ su -
# yum install @development
7 như
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
6, nhưng sử dụng môi trường ảo là cách thực hành tốt hơn nhiều để cách ly đúng cách các mô-đun bạn cần cho một dự án hoặc nhóm dự án nhất định.
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
95 lượt cài đặt sử dụng
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
21, có thể ẩn thông tin này bằng cách bật bộ sưu tập phần mềm và/hoặc kích hoạt môi trường ảo. Đối với các mô-đun cài đặt tập lệnh trình bao bọc trong
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
96, điều này có thể gây ra sự không khớp giữa tập lệnh trình bao bọc và mô-đun

Ngoại lệ đối với lời khuyên này là các mô-đun và công cụ mà bạn cần sử dụng bên ngoài môi trường ảo. Ví dụ chính là

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
0. Bạn nên sử dụng
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
24 để cài đặt
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
0. Bằng cách đó, bạn sẽ có
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
0 trong đường dẫn của mình mà không cần bất kỳ môi trường ảo nào

 

Không sử dụng hệ thống Python cho các dự án của riêng bạn

Phiên bản Python được cài đặt trong

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
09 và
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
28 là một phần của hệ điều hành. RHEL đã được thử nghiệm với một bản phát hành Python cụ thể (2. 7. 5) sẽ được duy trì trong suốt thời gian 10 năm được hỗ trợ của HĐH. Nhiều công cụ quản trị tích hợp thực sự được viết bằng Python. Cố gắng thay đổi phiên bản Python trong
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
82 thực sự có thể phá vỡ một số chức năng của hệ điều hành

Tại một số thời điểm, bạn có thể muốn chạy mã của mình trên một phiên bản HĐH khác. Hệ điều hành đó có thể sẽ được cài đặt một phiên bản Python khác như

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
09,
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
28 hoặc thậm chí là
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
32. Mã bạn viết có thể phụ thuộc vào một phiên bản cụ thể có thể được quản lý tốt nhất thông qua môi trường ảo và/hoặc bộ sưu tập phần mềm

Một ngoại lệ ở trên là nếu bạn đang viết các công cụ quản trị hệ thống. Trong trường hợp đó, bạn nên sử dụng Python trong

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
82 vì nó đã cài đặt đúng mô-đun và thư viện cho các API trong HĐH. Ghi chú. Nếu bạn đang viết các công cụ quản lý hoặc quản trị hệ thống bằng Python, bạn có thể muốn xem qua Ansible. Ansible được viết bằng Python, sử dụng Jinja2 để tạo khuôn mẫu và cung cấp các bản tóm tắt cấp cao hơn cho nhiều tác vụ hệ thống

Mẹo. Nếu bạn cần làm việc với Python 2. 7, cài đặt bộ sưu tập phần mềm

# yum install rh-python36-numpy \
 rh-python36-scipy \ 
 rh-python36-python-tools \
 rh-python36-python-six
3. Thực hiện theo các bước cài đặt ở trên nhưng sử dụng
# yum install rh-python36-numpy \
 rh-python36-scipy \ 
 rh-python36-python-tools \
 rh-python36-python-six
3 thay vì
# subscription-manager repos --list
5. Bạn có thể kích hoạt cả hai bộ sưu tập cùng một lúc, vì vậy bạn sẽ có cả bộ sưu tập mới hơn
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
11 và
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
71 trong đường dẫn của mình. Ghi chú. bộ sưu tập bạn kích hoạt sau cùng là bộ sưu tập sẽ xuất hiện đầu tiên trong đường dẫn của bạn, bộ sưu tập này xác định phiên bản bạn nhận được khi nhập lệnh như
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
08 hoặc
$ su -
# yum install @development
7 mà không có số phiên bản rõ ràng

Không thay đổi hoặc ghi đè lên $ scl enable rh-python36 bash $ python3 -V Python 3.6.3 $ python -V # python now also points to Python3 Python 3.6.3 $ mkdir ~/pydev $ cd ~/pydev $ python3 -m venv py36-venv $ source py36-venv/bin/activate (py36-venv) $ python3 -m pip install ...some modules...09, $ scl enable rh-python36 bash $ cd ~/pydev $ source py36-env/bin/activate28 hoặc $ scl enable rh-python36 bash $ cd ~/pydev $ source py36-env/bin/activate43

Như đã đề cập ở trên, Python hệ thống là một phần của Red Hat Enterprise Linux 7 và được sử dụng bởi các tiện ích hệ thống quan trọng như

# subscription-manager repos --list
0. (Vâng, yum được viết bằng Python. ) Vì vậy, ghi đè lên hệ thống Python có khả năng phá vỡ hệ thống của bạn—rất tệ. Nếu bạn cố gắng biên dịch Python từ nguồn, đừng thực hiện
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
45 (với quyền root) mà không sử dụng tiền tố khác, nếu không nó sẽ ghi đè lên
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
09

 


thủ thuật thu thập phần mềm

Bật bộ sưu tập Python *trước* môi trường ảo

Bạn phải luôn bật bộ sưu tập phần mềm Python trước khi sử dụng bất kỳ tiện ích môi trường ảo Python nào để tạo hoặc kích hoạt môi trường. Để mọi thứ hoạt động chính xác, bạn cần có phiên bản Python mong muốn trong đường dẫn của mình vì môi trường ảo Python sẽ cần phiên bản này. Một số vấn đề, một số vấn đề nhỏ, sẽ xuất hiện nếu bạn cố gắng bật/kích hoạt sai thứ tự

Ví dụ cho

$ su -
# yum install @development
8

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
2

Khi kích hoạt lại sau trong Shell mới

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
3

Ví dụ cho

$ su -
# yum install @development
9

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
4

Khi kích hoạt lại sau trong Shell mới

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
3

Cách kích hoạt vĩnh viễn bộ sưu tập phần mềm

Để thêm vĩnh viễn Python 3 vào (các) đường dẫn của bạn, bạn có thể thêm lệnh

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
49 vào "tệp dấu chấm" cho ID người dùng cụ thể của mình. Lợi ích của phương pháp này là bộ sưu tập đã được kích hoạt ở mọi lần đăng nhập. Nếu bạn đang sử dụng màn hình đồ họa, mọi thứ bạn bắt đầu từ menu sẽ được bật bộ sưu tập

Có một vài lưu ý với cách tiếp cận này

  • Khi bạn gõ
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    08 mà không có số phiên bản, bạn sẽ nhận được Python 3 thay vì Python 2. Bạn vẫn có thể tải Python 2 bằng cách gõ
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    10 hoặc
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    11. Nên sử dụng số phiên bản rõ ràng
  • Những điều trên áp dụng cho các lệnh Python khác nằm trong
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    14, chẳng hạn như
    $ su -
    # yum install @development
    7,
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    16,
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    17,
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    18 và
    $ su -
    # yum install @development
    9. Sử dụng số phiên bản để tránh bất ngờ
  • Không có lệnh
    $ scl enable rh-python36 bash
    
    $ cd ~/pydev
    $ source py36-env/bin/activate
    59. Mọi thứ đều nằm trong các biến môi trường, vì vậy bạn có thể giải quyết nó, nhưng đó sẽ là một quy trình thủ công. Tuy nhiên, bạn có thể kích hoạt một bộ sưu tập phần mềm khác mà sau đó sẽ được ưu tiên hơn bộ sưu tập trong hồ sơ của bạn

Sử dụng trình soạn thảo văn bản ưa thích của bạn, thêm dòng sau vào

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
60 của bạn

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
6

Ghi chú. bạn cũng có thể thêm dòng

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
49 vào đầu tập lệnh xây dựng để chọn Python mong muốn cho bản dựng. Nếu tập lệnh xây dựng của bạn không được viết dưới dạng tập lệnh shell/bash, bạn chỉ cần bọc nó trong tập lệnh shell có lệnh nguồn
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
49 và sau đó chạy tập lệnh xây dựng của bạn

 

Cách sử dụng Python 3 từ RHSCL trong #. (shebang) dòng kịch bản

Bạn có thể tạo tập lệnh sẽ sử dụng Python từ bộ sưu tập phần mềm mà không yêu cầu phải chạy thủ công trước tiên đối với ____18_______1. Điều này có thể được thực hiện bằng cách sử dụng

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
64 làm thông dịch viên cho tập lệnh

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
7

Ghi chú. Bạn có thể muốn thử chỉ sử dụng đường dẫn đầy đủ đến

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
65 mà không có
# subscription-manager repos --list-enabled
1. Trong nhiều trường hợp, điều này sẽ không hoạt động. Hành vi phụ thuộc vào bộ sưu tập phần mềm cụ thể. Đối với hầu hết các bộ sưu tập, điều này sẽ không thành công với lỗi thư viện dùng chung, vì
# subscription-manager repos --list-enabled
9 không được đặt chính xác. Bộ sưu tập
# yum install rh-python36-numpy \
 rh-python36-scipy \ 
 rh-python36-python-tools \
 rh-python36-python-six
3 không báo lỗi, nhưng nó tìm thấy thư viện chia sẻ sai, vì vậy bạn nhận được phiên bản Python sai, điều này có thể gây ngạc nhiên. Tuy nhiên,
# subscription-manager repos --list
5 có thể được tham chiếu trực tiếp mà không cần đặt
# subscription-manager repos --list-enabled
9, nhưng hiện tại đây là bộ sưu tập Python duy nhất hoạt động theo cách đó. Không có gì đảm bảo rằng các bộ sưu tập trong tương lai sẽ hoạt động theo cách tương tự

Cách xem bộ sưu tập phần mềm nào được cài đặt

Bạn có thể sử dụng lệnh

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
71 để xem bộ sưu tập phần mềm nào được cài đặt. Điều này sẽ hiển thị tất cả các bộ sưu tập phần mềm đã được cài đặt, cho dù chúng có được bật hay không

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
8

Làm cách nào để biết bộ sưu tập phần mềm nào được bật

Biến môi trường

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
72 chứa danh sách các bộ sưu tập phần mềm hiện đang được bật

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
9

Trong tập lệnh, bạn có thể sử dụng

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
73 để kiểm tra xem một bộ sưu tập cụ thể có được bật hay không

Làm cách nào để tìm danh sách Bộ sưu tập phần mềm Red Hat và chúng được hỗ trợ trong bao lâu?

Xem Vòng đời sản phẩm của Bộ sưu tập phần mềm Red Hat trên Cổng thông tin khách hàng của Red Hat. Nó có một danh sách các gói Red Hat Software Collections và thông tin hỗ trợ

Bạn cũng có thể kiểm tra ghi chú phát hành cho bản phát hành gần đây nhất của Bộ sưu tập phần mềm Red Hat

Tìm các gói RPM bổ sung và xem các phiên bản có sẵn khác

Bạn có thể sử dụng

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
74 để tìm kiếm các gói bổ sung và xem các phiên bản khác có sẵn

Để tìm kiếm các gói khác là một phần của bộ sưu tập

# subscription-manager repos --list
5

$ su -
# yum install @development
0

Bắt đầu với Python 3. 4, tên bộ sưu tập và tên gói đều có tiền tố là

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
76. Vì vậy, bạn có thể sử dụng lệnh sau để xem tất cả các gói
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
77 và do đó, xem những bộ sưu tập nào có sẵn

$ su -
# yum install @development
1

Ghi chú. để xem các gói có sẵn trong Python 2. 7 bộ sưu tập, tìm kiếm cho

# yum install rh-python36-numpy \
 rh-python36-scipy \ 
 rh-python36-python-tools \
 rh-python36-python-six
3

$ su -
# yum install @development
2

Tất nhiên, bạn có thể chỉ cần tìm kiếm

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
08 và nhận danh sách mọi RPM có sẵn có ____24_______08 trong tên hoặc mô tả. Đó sẽ là một danh sách rất dài, vì vậy tốt nhất bạn nên chuyển hướng đầu ra sang một tệp và sử dụng
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
81 hoặc trình soạn thảo văn bản để tìm kiếm tệp. Các gói bắt đầu bằng
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
82 (không có số phiên bản) là một phần của cơ sở RHEL Python 2. 7. 5 gói được cài đặt trong
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
82

 


Xử lý sự cố

con trăn. lỗi khi tải thư viện dùng chung

Lỗi này xảy ra khi bạn đang cố chạy tệp nhị phân nhưng không thể tìm thấy thư viện dùng chung mà nó phụ thuộc vào. Thông thường, điều này xảy ra khi cố gắng chạy

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
08 từ bộ sưu tập phần mềm mà không kích hoạt nó trước. Ngoài cài đặt
# subscription-manager repos --list-enabled
7,
# subscription-manager repos --list-enabled
1 còn cài đặt
# subscription-manager repos --list-enabled
9. Điều này thêm thư mục chứa các đối tượng được chia sẻ của bộ sưu tập phần mềm vào đường dẫn tìm kiếm thư viện

Để xem những biến môi trường nào được sửa đổi, hãy xem

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
88

$ su -
# yum install @development
3

Phiên bản Python sai khi chạy $ scl enable rh-python36 bash $ python3 -V Python 3.6.3 $ python -V # python now also points to Python3 Python 3.6.3 $ mkdir ~/pydev $ cd ~/pydev $ python3 -m venv py36-venv $ source py36-venv/bin/activate (py36-venv) $ python3 -m pip install ...some modules...08

Đầu tiên, việc chạy

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
08 mà không có số phiên bản có khả năng cung cấp cho bạn một phiên bản Python không mong muốn vào một thời điểm nào đó. Kết quả phụ thuộc vào
# subscription-manager repos --list-enabled
7 của bạn, điều này phụ thuộc vào việc bạn đã kích hoạt bộ sưu tập phần mềm và/hoặc kích hoạt môi trường ảo hay chưa. Nếu bạn sử dụng một số phiên bản chẳng hạn như
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
71 và bạn chưa kích hoạt/kích hoạt đúng môi trường, bạn sẽ nhận được lỗi “không tìm thấy lệnh” rõ ràng và dễ hiểu

Thứ hai, bạn cũng có thể tải sai phiên bản nếu quên bật bộ sưu tập phần mềm. Kích hoạt bộ sưu tập phần mềm sẽ đặt thư mục

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
93 của bộ sưu tập vào đường dẫn của bạn trước, do đó, nó sẽ ẩn tất cả các phiên bản lệnh khác có cùng tên

Bộ sưu tập phần mềm cần được kích hoạt ngay cả khi bạn cung cấp đường dẫn đầy đủ đến tệp nhị phân

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
08. Đối với hầu hết các bộ sưu tập, bạn sẽ gặp lỗi thư viện dùng chung (xem bên trên) mà không đặt đúng đường dẫn thư viện. Tuy nhiên, nếu bạn thử điều này với bộ sưu tập
# yum install rh-python36-numpy \
 rh-python36-scipy \ 
 rh-python36-python-tools \
 rh-python36-python-six
3, bạn sẽ nhận được Python 2. 7. 5 (phiên bản mặc định) thay vì Python 2. 7. 13 như bạn mong đợi. Điều này là do sự phụ thuộc vào thư viện được chia sẻ được thỏa mãn từ
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
96 thay vì từ bộ sưu tập phần mềm, vì vậy bạn chọn hệ thống Python

Lỗi khi chạy $ su - # yum install @development7. ImportError không thể nhập tên 'chính'

Nếu bạn chạy

$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
98, như một số hướng dẫn gợi ý, lệnh
$ su -
# yum install @development
7 sẽ không hoạt động nữa. Sự cố là sự cố đường dẫn kết hợp với sự không tương thích giữa các phiên bản. Cài đặt người dùng của
$ su -
# yum install @development
7 đã đặt một lệnh
$ su -
# yum install @development
7 mới trong
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
96. Tuy nhiên,
$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
96 nằm trong con đường của bạn *sau* bộ sưu tập phần mềm. Vì vậy, bạn nhận được tập lệnh bao bọc cũ hơn không tương thích với mô-đun mới hơn

Điều này có thể được giải quyết theo nhiều cách

  • Sử dụng môi trường ảo. Khi bạn tạo hoặc kích hoạt một môi trường ảo, bạn sẽ nhận được tập lệnh trình bao bọc
    $ su -
    # yum install @development
    7 chính xác trong thư mục
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    14 của môi trường ảo
  • Chạy
    $ su -
    # yum install @development
    7 như một mô-đun.
    $ su -
    # yum install @development
    07 (Xem "Tránh tập lệnh trình bao Python" ở trên. )
  • Không nâng cấp
    $ su -
    # yum install @development
    7 bên ngoài môi trường ảo
  • Sử dụng đường dẫn đầy đủ đến tập lệnh trình bao bọc
    $ su -
    # yum install @development
    7.
    $ su -
    # yum install @development
    10
  • Thêm
    $ scl enable rh-python36 bash
    $ python3 -V
    Python 3.6.3
    
    $ python -V  # python now also points to Python3 
    Python 3.6.3
    
    $ mkdir ~/pydev
    $ cd ~/pydev
    
    $ python3 -m venv py36-venv
    $ source py36-venv/bin/activate
    
    (py36-venv) $ python3 -m pip install ...some modules...
    96 làm thư mục đầu tiên trong
    # subscription-manager repos --list-enabled
    7 của bạn sau khi kích hoạt bộ sưu tập phần mềm Python

Ghi chú. Để gỡ cài đặt

$ su -
# yum install @development
7 đã nâng cấp đã được cài đặt trong
$ scl enable rh-python36 bash

$ cd ~/pydev
$ source py36-env/bin/activate
21, hãy chạy lệnh sau dưới ID người dùng thông thường của bạn (không phải
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
6)

$ su -
# yum install @development
4

 

Không thể tìm thấy $ su - # yum install @development16

Bộ sưu tập phần mềm

# subscription-manager repos --list
5 bao gồm tập lệnh trình bao bọc
$ su -
# yum install @development
9 nhưng không có liên kết cho
$ su -
# yum install @development
16. Có hai cách giải quyết cho vấn đề này, nhưng trước tiên tôi nên chỉ ra rằng
$ su -
# yum install @development
8 hiện là công cụ ưa thích của Python 3 cho môi trường ảo

Giải pháp thay thế ưa thích là tránh hoàn toàn tập lệnh bao bọc và gọi trực tiếp mô-đun

$ scl enable rh-python36 bash
$ python3 -V
Python 3.6.3

$ python -V  # python now also points to Python3 
Python 3.6.3

$ mkdir ~/pydev
$ cd ~/pydev

$ python3 -m venv py36-venv
$ source py36-venv/bin/activate

(py36-venv) $ python3 -m pip install ...some modules...
5

Ngoài ra, bạn có thể tạo liên kết tượng trưng của riêng mình trong thư mục

$ su -
# yum install @development
21

$ su -
# yum install @development
6

Thêm thông tin. Phát triển bằng Python trên Nền tảng Red Hat

Nick Coghlan và Graham Dumpleton đã nói chuyện về Phát triển bằng Python trên Nền tảng Red Hat tại DevNation 2016. Cuộc nói chuyện đầy ắp thông tin và vẫn rất phù hợp. Chúng bao gồm thông tin về cách xây dựng ứng dụng Python bằng cách sử dụng vùng chứa, cách sử dụng s2i và triển khai lên Red Hat OpenShift. Tôi khuyên bạn nên xem video hoặc ít nhất là xem lại các slide