Python 3.9 hết hạn sử dụng

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

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. TL;DR [tóm tắt các bước]
  2. Tại sao nên sử dụng Bộ sưu tập phần mềm Red Hat
  3. Các bước cài đặt đầy đủ với lời giải thích
  4. Cách sử dụng Python 3 thông qua Bộ sưu tập phần mềm Red Hat
  5. Làm việc với môi trường ảo Python
    1. Tôi có nên sử dụng
      $ su -
      # yum install @development
      8 hoặc
      $ su -
      # yum install @development
      9 hay cái gì khác không?
    2. Sử dụng
      $ su -
      # yum install @development
      8
    3. Sử dụng
      $ su -
      # yum install @development
      9
    4. Quản lý các ứng dụng phụ thuộc bằng cách sử dụng
      $ su -
      # subscription-manager repos \
       --enable rhel-7-server-optional-rpms \
       --enable rhel-server-rhscl-7-rpms
      0
  6. Mẹo chung để làm việc với Python
  7. Mẹo để làm việc với các bộ sưu tập phần mềm
    1. Bật bộ sưu tập Python *trước* môi trường ảo
    2. Cách kích hoạt vĩnh viễn bộ sưu tập phần mềm
    3. Cách sử dụng Python 3 từ RHSCL trong #. [shebang] dòng kịch bản
    4. Làm cách nào để biết bộ sưu tập phần mềm nào được bật
    5. Cách xem bộ sưu tập phần mềm nào được cài đặt
  8. Xử lý sự cố
  9. Thêm thông tin. Phát triển bằng Python trên Nền tảng Red Hat

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
    $ su -
    # yum install @development
    30 để cài đặt
    $ su -
    # yum install @development
    31. Điều này đảm bảo rằng bạn đã có GCC,
    $ su -
    # yum install @development
    32,
    $ su -
    # yum install @development
    33, 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
    $ su -
    # yum install @development
    30 để cài đặt
    $ su -
    # yum install @development
    35
  5. Không bắt buộc. Sử dụng
    $ su -
    # yum install @development
    30 để cài đặt
    $ su -
    # yum install @development
    37,
    $ su -
    # yum install @development
    38,
    $ su -
    # yum install @development
    39 và
    $ su -
    # yum install @development
    30 từ RHSCL RPM
$ su -
# yum install @development
4

Sử dụng Python 3 trên RHEL

  1. Theo ID người dùng bình thường của bạn, hãy chạy
    $ su -
    # yum install @development
    31 để thêm
    $ su -
    # yum install @development
    32 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 phải là
    $ su -
    # subscription-manager repos \
     --enable rhel-7-server-optional-rpms \
     --enable rhel-server-rhscl-7-rpms
    6
$ su -
# yum install @development
9

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

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

 

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

$ su -
# yum install @development
31

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

$ su -
# yum install @development
30 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 [

$ su -
# yum install @development
37,
$ su -
# yum install @development
38,
$ su -
# yum install @development
39] 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
$ su -
# yum install @development
31 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ữ
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
92, 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 dưới dạng

$ 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
    $ su -
    # subscription-manager repos \
     --enable rhel-7-server-optional-rpms \
     --enable rhel-server-rhscl-7-rpms
    94 thành
    $ su -
    # subscription-manager repos \
     --enable rhel-7-server-optional-rpms \
     --enable rhel-server-rhscl-7-rpms
    95
  • 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
    $ su -
    # yum install @development
    30 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

$ su -
# yum install @development
3

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

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

$ su -
# yum install @development
3

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

$ su -
# yum install @development
30

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

ghi chú

  • Các gói này sẽ cài đặt trong
    $ su -
    # subscription-manager repos \
     --enable rhel-7-server-optional-rpms \
     --enable rhel-server-rhscl-7-rpms
    99
  • Chúng sẽ không được thêm vào đường dẫn của bạn cho đến khi bạn chạy
    $ su -
    # yum install @development
    31. Xem bên dưới
  • Đối với các phiên bản Python khác, hãy sử dụng tên sau đây làm tên gói/bộ sưu tập.
    Trăn 3. 5.
    $ su -
    # yum install @development
    21
    Python 3. 4.
    $ su -
    # yum install @development
    22
    Trăn 2. 7. 13.
    $ su -
    # yum install @development
    23
  • Một số gói bổ sung sẽ được cài đặt dưới dạng phụ thuộc. Chúng bao gồm
    $ su -
    # yum install @development
    24,
    $ su -
    # yum install @development
    7,
    $ su -
    # yum install @development
    26 và
    $ su -
    # yum install @development
    9
  • Gói
    $ su -
    # yum install @development
    24 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.
    $ su -
    # yum install @development
    29 là tập hợp các công cụ đi kèm với Python 3,
    $ su -
    # yum install @development
    10 và
    $ su -
    # yum install @development
    11
  • Nặng nề.
    $ su -
    # yum install @development
    12 là một cơ sở mảng đa chiều nhanh cho Python
  • scipy.
    $ su -
    # yum install @development
    13 cung cấp các công cụ khoa học cho Python
  • Sáu.
    $ su -
    # yum install @development
    14 cung cấp các tiện ích tương thích với Python 2 và 3
  • phép thuật.
    $ su -
    # yum install @development
    15 là thư viện ORM mô-đun và linh hoạt dành cho Python
  • PyYAML.
    $ su -
    # yum install @development
    16 là trình phân tích và trình phát YAML cho Python
  • Simplejson.
    $ su -
    # yum install @development
    17 là một bộ mã hóa/giải mã JSON đơn giản, nhanh chóng, có thể mở rộng cho Python

Thí dụ

$ su -
# yum install @development
2

 

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

$ su -
# yum install @development
18 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 [
$ su -
# yum install @development
31]

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, các bộ sưu tập phần mềm được cài đặt theo

$ su -
# yum install @development
901 và không được tự động thêm vào
$ su -
# yum install @development
37,
$ su -
# yum install @development
38 và
$ su -
# yum install @development
39 của bạn. Lệnh
$ su -
# yum install @development
31 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 do scl
$ su -
# yum install @development
906 chạy. Bạn có thể sử dụng
$ su -
# yum install @development
907 làm lệnh để bắt đầu 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

$ su -
# yum install @development
1

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

$ su -
# yum install @development
908 trong đường dẫn của bạn, không có số phiên bản, trỏ đến Python 3.
$ su -
# yum install @development
909 vẫn sẽ là Python 2. Bạn vẫn có thể chạy Python 2 bằng cách gõ
$ su -
# yum install @development
910,
$ su -
# yum install @development
911 hoặc
$ su -
# yum install @development
909. Bạn nên sử dụng số phiên bản để tránh mọi sự mơ hồ về ý nghĩa của
$ su -
# yum install @development
908. Điều này cũng áp dụng cho các lệnh Python khác trong
$ su -
# yum install @development
914, chẳng hạn như
$ su -
# yum install @development
7,
$ su -
# yum install @development
916,
$ su -
# yum install @development
917,
$ su -
# yum install @development
918 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 thông 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

$ su -
# yum install @development
921,
$ su -
# yum install @development
922 và
$ su -
# yum install @development
923 sẽ cung cấp cho bạn đường dẫn đến môi trường có thể tái tạo để 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
$ su -
# yum install @development
923 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ố

$ su -
# yum install @development
18

Tôi có nên sử dụng
$ su -
# yum install @development
8 hoặc
$ su -
# yum install @development
9 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. "Cài đặt mô-đun Python" trong tài liệu Python hiện tại cho biết đ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 Python 3 gần đây,

$ 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
$ su -
# yum install @development
939 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 @development
8

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

$ su -
# yum install @development
35

$ su -
# yum install @development
90

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

$ su -
# yum install @development
91

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

$ su -
# yum install @development
92

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. Thí dụ

$ su -
# yum install @development
93

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

$ su -
# yum install @development
943. Ghi chú. bạn nên chạy
$ su -
# yum install @development
31 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 @development
9

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

$ su -
# yum install @development
35

$ su -
# yum install @development
90

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

$ su -
# yum install @development
95

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

$ su -
# yum install @development
31 trước khi kích hoạt môi trường ảo

$ su -
# yum install @development
92

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. Thí dụ

$ su -
# yum install @development
93

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

$ su -
# yum install @development
943. Ghi chú. bạn nên chạy
$ su -
# yum install @development
31 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ý phụ thuộc ứng dụng với
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
0

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

"Pipenv là trình 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ỉ riêng pip thường 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
$ su -
# yum install @development
955 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

$ su -
# yum install @development
98

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ôi trường ảo sẽ tự động được tạo nếu không có
$ su -
# yum install @development
963 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.

$ su -
# yum install @development
99

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

$ su -
# yum install @development
964

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

Pipenv tương tự như

$ su -
# yum install @development
31 ở chỗ nó không cố sửa đổi môi trường hiện tại bằng
$ su -
# yum install @development
943, thay vào đó, nó bắt đầu một trình bao mới. Để hủy kích hoạt,
$ su -
# yum install @development
967 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
$ su -
# yum install @development
968

Để 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
$ su -
# yum install @development
908. 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õ

$ su -
# yum install @development
908. Sử dụng số phiên bản rõ ràng trong lệnh, chẳng hạn như
$ su -
# yum install @development
971 hoặc
$ su -
# yum install @development
911

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

$ su -
# yum install @development
973 hoặc
$ su -
# yum install @development
910. 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
$ su -
# yum install @development
908

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
$ su -
# yum install @development
916. Nên sử dụng số phiên bản, ví dụ:
$ su -
# yum install @development
978. Ở mức tối thiểu sử dụng số phiên bản chính.
$ su -
# yum install @development
979. 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 
$ su -
# yum install @development
980 có thể bị lỗi

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

$ su -
# yum install @development
980 để tránh các đường dẫn khó mã hóa như 
$ su -
# yum install @development
982hoặc 
$ su -
# yum install @development
983 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
$ su -
# yum install @development
984 để xác định phiên bản Python nào sẽ được chạy

Sử dụng lệnh

$ su -
# yum install @development
984 để 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
$ su -
# yum install @development
908 nằm trong đường dẫn của bạn trước tiên và sẽ được chạy khi bạn nhập
$ su -
# yum install @development
908

ví dụ

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

 

Tránh các tập lệnh bao bọc Python chẳng hạn như
$ su -
# yum install @development
9. 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

$ su -
# yum install @development
914. Điều này thuận tiện vì bạn có thể chỉ cần gõ
$ su -
# yum install @development
7 hoặc
$ su -
# yum install @development
991 Hầu hết các tiện ích Python thực sự 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

$ su -
# yum install @development
908. 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

$ su -
# yum install @development
995 đặt tập lệnh trình bao bọc của chúng vào
$ su -
# yum install @development
996, 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

$ su -
# yum install @development
997modulename. 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
    $ su -
    # yum install @development
    999
  • Thay vì
    $ su -
    # yum install @development
    918, hãy sử dụng
    $ su -
    # subscription-manager repos \
     --enable rhel-7-server-optional-rpms \
     --enable rhel-server-rhscl-7-rpms
    001
  • Thay vì
    $ su -
    # yum install @development
    9, hãy sử dụng
    $ su -
    # yum install @development
    939

Không chạy
$ su -
# yum install @development
955 với quyền root [hoặc với
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
005]

Chạy

$ su -
# yum install @development
955 với quyền root trực tiếp hoặc bằng cách sử dụng
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
005 là một ý tưởng tồi và đôi khi sẽ gây ra sự cố cho bạn. Một số vấn đề mà bạn có thể gặp phải là

  • Xung đột giữa 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 nên để
    $ su -
    # yum install @development
    30 độc quyền quản lý các file 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
    $ su -
    # yum install @development
    955 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

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
013 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

$ su -
# yum install @development
995 để 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ì
$ su -
# yum install @development
995

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

$ su -
# yum install @development
995. Mặc dù điều này được ưu tiên hơn là chạy
$ su -
# yum install @development
7 dưới dạng
$ 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. Các lượt cài đặt
$ su -
# yum install @development
995 sử dụng
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
021, 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
$ su -
# yum install @development
996, đ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
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
024 để 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

$ su -
# yum install @development
909 và
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
028 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
$ su -
# yum install @development
982 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ài đặt một phiên bản Python khác như

$ su -
# yum install @development
909,
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
028 hoặc thậm chí là
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
032. 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

$ su -
# yum install @development
982 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

$ su -
# yum install @development
23. Thực hiện theo các bước cài đặt ở trên nhưng sử dụng
$ su -
# yum install @development
23 thay vì
$ su -
# yum install @development
35. Bạn có thể kích hoạt cả hai bộ sưu tập cùng lúc, vì vậy, bạn sẽ có cả bộ sưu tập mới hơn
$ su -
# yum install @development
911 và
$ su -
# yum install @development
971 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ư
$ su -
# yum install @development
908 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
$ su -
# yum install @development
909,
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
028 hoặc
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
043

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ư

$ su -
# yum install @development
30. [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
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
045 [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
$ su -
# yum install @development
909

 

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

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

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

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

Ví dụ cho

$ su -
# yum install @development
9

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

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

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

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

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
049 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 nhập
    $ su -
    # yum install @development
    908 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õ
    $ su -
    # yum install @development
    910 hoặc
    $ su -
    # yum install @development
    911. 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 trong
    $ su -
    # yum install @development
    914, chẳng hạn như
    $ su -
    # yum install @development
    7,
    $ su -
    # yum install @development
    916,
    $ su -
    # yum install @development
    917,
    $ su -
    # yum install @development
    918 và
    $ su -
    # yum install @development
    9. Sử dụng số phiên bản để tránh bất ngờ
  • Không có lệnh
    $ su -
    # subscription-manager repos \
     --enable rhel-7-server-optional-rpms \
     --enable rhel-server-rhscl-7-rpms
    059. 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

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
060 của bạn

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

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

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
049 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, thì bạn chỉ cần bọc nó trong tập lệnh shell có lệnh nguồn
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
049 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

$ su -
# yum install @development
31. Điều này có thể được thực hiện bằng cách sử dụng
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
064 làm trình thông dịch cho tập lệnh

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

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

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
065 mà không có
$ su -
# yum install @development
31. 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ì
$ su -
# yum install @development
39 không được đặt chính xác. Bộ sưu tập
$ su -
# yum install @development
23 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,
$ su -
# yum install @development
35 có thể được tham chiếu trực tiếp mà không cần đặt
$ su -
# yum install @development
39, 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

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
071 để 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

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

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

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
072 chứa danh sách các bộ sưu tập phần mềm hiện đang được bật

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

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

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
073 để 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

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
074 để 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

$ su -
# yum install @development
35

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

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
076. Vì vậy, bạn có thể sử dụng lệnh sau để xem tất cả các gói
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
077 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

$ su -
# yum install @development
23

$ su -
# yum install @development
2

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

$ su -
# yum install @development
908 và nhận danh sách mọi RPM có sẵn có tên hoặc mô tả
$ su -
# yum install @development
908. Đây 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
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
081 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
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
082 [không có số phiên bản] là một phần của RHEL Python 2 cơ sở. 7. 5 gói được cài đặt trong
$ su -
# yum install @development
982

 

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ố chạy

$ su -
# yum install @development
908 từ bộ sưu tập phần mềm mà không bật nó trước. Ngoài cài đặt
$ su -
# yum install @development
37,
$ su -
# yum install @development
31 còn cài đặt
$ su -
# yum install @development
39. Đ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

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

$ su -
# yum install @development
3

Phiên bản Python sai khi chạy
$ su -
# yum install @development
908

Đầu tiên, chạy

$ su -
# yum install @development
908 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 lúc nào đó. Kết quả phụ thuộc vào
$ su -
# yum install @development
37 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ư
$ su -
# yum install @development
971 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

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
093 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 đủ tới tệp nhị phân

$ su -
# yum install @development
908. Đố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
$ su -
# yum install @development
23, 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 dùng chung được thỏa mãn từ
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
096 thay vì từ bộ sưu tập phần mềm, vì vậy bạn chọn Python hệ thống

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

Nếu bạn chạy

$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
098, như một số hướng dẫn đề xuất, 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
$ su -
# yum install @development
996. Tuy nhiên,
$ su -
# yum install @development
996 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ô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
    $ su -
    # yum install @development
    914 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
    $ su -
    # yum install @development
    996 làm thư mục đầu tiên trong
    $ su -
    # yum install @development
    37 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
$ su -
# subscription-manager repos \
 --enable rhel-7-server-optional-rpms \
 --enable rhel-server-rhscl-7-rpms
021, 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 @development
16

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

$ su -
# yum install @development
35 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

$ su -
# yum install @development
95

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 của mình

$ 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

Chủ Đề