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 8Sử 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
- TL;DR [tóm tắt các bước]
- Tại sao nên sử dụng Bộ sưu tập phần mềm Red Hat
- Các bước cài đặt đầy đủ với lời giải thích
- Cách sử dụng Python 3 thông qua Bộ sưu tập phần mềm Red Hat
- Làm việc với môi trường ảo Python
- Tôi có nên sử dụng
8 hoặc$ su - # yum install @development
9 hay cái gì khác không?$ su - # yum install @development
- Sử dụng
8$ su - # yum install @development
- Sử dụng
9$ su - # yum install @development
- Quản lý các ứng dụng phụ thuộc bằng cách sử dụng
0$ su - # subscription-manager repos \ --enable rhel-7-server-optional-rpms \ --enable rhel-server-rhscl-7-rpms
- Tôi có nên sử dụng
- Mẹo chung để làm việc với Python
- Mẹo để làm việc với các bộ sưu tập phần mềm
- Bật bộ sưu tập Python *trước* môi trường ảo
- Cách kích hoạt vĩnh viễn bộ sưu tập phần mềm
- Cách sử dụng Python 3 từ RHSCL trong #. [shebang] dòng kịch bản
- Làm cách nào để biết bộ sưu tập phần mềm nào được bật
- Cách xem bộ sưu tập phần mềm nào được cài đặt
- Xử lý sự cố
- 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
- Trở thành
6$ su - # subscription-manager repos \ --enable rhel-7-server-optional-rpms \ --enable rhel-server-rhscl-7-rpms
- Kích hoạt kho lưu trữ phần mềm
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$ su - # subscription-manager repos \ --enable rhel-7-server-optional-rpms \ --enable rhel-server-rhscl-7-rpms
- Sử dụng
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$ su - # yum install @development
- Sử dụng
30 để cài đặt$ su - # yum install @development
35$ su - # yum install @development
- Không bắt buộc. Sử dụng
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
$ su -
# yum install @development
4Sử dụng Python 3 trên RHEL
- Theo ID người dùng bình thường của bạn, hãy chạy
31 để thêm$ su - # yum install @development
32 vào [các] đường dẫn của bạn$ su - # yum install @development
- 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. ]
- Cài đặt bất kỳ mô-đun bổ sung nào bạn cần với
7 trong một môi trường biệt lập mà không phải là$ su - # yum install @development
6$ su - # subscription-manager repos \ --enable rhel-7-server-optional-rpms \ --enable rhel-server-rhscl-7-rpms
$ su -
# yum install @development
9Nế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
31Ghi 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ềmSử 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
94 thành$ su - # subscription-manager repos \ --enable rhel-7-server-optional-rpms \ --enable rhel-server-rhscl-7-rpms
95$ su - # subscription-manager repos \ --enable rhel-7-server-optional-rpms \ --enable rhel-server-rhscl-7-rpms
- 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
30 khi cài đặt hoặc cập nhật phần mềm$ su - # yum install @development
- Đă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
3Cà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
9ghi chú
- Các gói này sẽ cài đặt trong
99$ su - # subscription-manager repos \ --enable rhel-7-server-optional-rpms \ --enable rhel-server-rhscl-7-rpms
- Chúng sẽ không được thêm vào đường dẫn của bạn cho đến khi bạn chạy
31. Xem bên dưới$ su - # yum install @development
- Đố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.
21$ su - # yum install @development
Python 3. 4.
22$ su - # yum install @development
Trăn 2. 7. 13.
23$ su - # yum install @development
- Một số gói bổ sung sẽ được cài đặt dưới dạng phụ thuộc. Chúng bao gồm
24,$ su - # yum install @development
7,$ su - # yum install @development
26 và$ su - # yum install @development
9$ su - # yum install @development
- Gói
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++]$ su - # yum install @development
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.
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$ su - # yum install @development
- Nặng nề.
12 là một cơ sở mảng đa chiều nhanh cho Python$ su - # yum install @development
- scipy.
13 cung cấp các công cụ khoa học cho Python$ su - # yum install @development
- Sáu.
14 cung cấp các tiện ích tương thích với Python 2 và 3$ su - # yum install @development
- phép thuật.
15 là thư viện ORM mô-đun và linh hoạt dành cho Python$ su - # yum install @development
- PyYAML.
16 là trình phân tích và trình phát YAML cho Python$ su - # yum install @development
- Simplejson.
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$ su - # yum install @development
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]
$ su -
# yum install @development
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ạnNhư đã đề 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
1Ghi 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 394GHI 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ạnSử 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ợpTheo 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
18Tô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?
$ su -
# yum install @development
$ su -
# yum install @development
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
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$ su - # yum install @development
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ênNếu bạn làm việc với Python 2. 7, bạn sẽ cần sử dụng
$ su -
# yum install @development
9Cá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 tinTạo và kích hoạt môi trường ảo với $ su -
# yum install @development
8
$ su -
# yum install @development
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
90Bâ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
91Bấ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
92Ghi 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
93Ghi 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
$ su -
# yum install @development
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
90Bâ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
95Bấ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
92Ghi 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
93Ghi 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
$ su -
# subscription-manager repos \
--enable rhel-7-server-optional-rpms \
--enable rhel-server-rhscl-7-rpms
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
98Tạ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
00Pipenv 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
$ su -
# yum install @development
Để 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
908Vấ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
$ su -
# yum install @development
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
$ su -
# yum install @development
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
908ví 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
$ su -
# yum install @development
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ô-đunSự 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ảnGhi 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 ảoBạ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ềukhuyến nghị
- Thay vì
7, hãy sử dụng$ su - # yum install @development
999$ su - # yum install @development
- Thay vì
918, hãy sử dụng$ su - # yum install @development
001$ su - # subscription-manager repos \ --enable rhel-7-server-optional-rpms \ --enable rhel-server-rhscl-7-rpms
- Thay vì
9, hãy sử dụng$ su - # yum install @development
939$ su - # yum install @development
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]
$ su -
# yum install @development
$ su -
# subscription-manager repos \
--enable rhel-7-server-optional-rpms \
--enable rhel-server-rhscl-7-rpms
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
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$ su - # yum install @development
- 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
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ì?$ su - # yum install @development
- 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
955 dưới dạng$ su - # yum install @development
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$ su - # subscription-manager repos \ --enable rhel-7-server-optional-rpms \ --enable rhel-server-rhscl-7-rpms
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àoNế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ạnTrong 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
$ su -
# yum install @development
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ô-đunNgoạ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ànhTạ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ềmMộ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ốngMẹ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àngKhô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
$ su -
# yum install @development
$ su -
# subscription-manager repos \
--enable rhel-7-server-optional-rpms \
--enable rhel-server-rhscl-7-rpms
$ su -
# subscription-manager repos \
--enable rhel-7-server-optional-rpms \
--enable rhel-server-rhscl-7-rpms
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
02Khi 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
03Ví dụ cho
$ su -
# yum install @development
9$ su -
# subscription-manager repos \
--enable rhel-7-server-optional-rpms \
--enable rhel-server-rhscl-7-rpms
04Khi 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
03Cá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ậpCó một vài lưu ý với cách tiếp cận này
- Khi bạn nhập
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$ su - # yum install @development
- Những điều trên áp dụng cho các lệnh Python khác trong
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ờ$ su - # yum install @development
- Không có lệnh
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$ su - # subscription-manager repos \ --enable rhel-7-server-optional-rpms \ --enable rhel-server-rhscl-7-rpms
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
06Ghi 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
07Ghi 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
08Là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
09Trong 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ôngLà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
0Bắ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
1Ghi 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
2Tấ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
3Phiên bản Python sai khi chạy $ su -
# yum install @development
908
$ su -
# yum install @development
Đầ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ểuThứ 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ênBộ 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ốngLỗi khi chạy $ su -
# yum install @development
7. ImportError không thể nhập tên 'chính'
$ su -
# yum install @development
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
7 chính xác trong thư mục$ su - # yum install @development
914 của môi trường ảo$ su - # yum install @development
- Chạy
7 như một mô-đun.$ su - # yum install @development
07 [Xem "Tránh tập lệnh trình bao Python" ở trên. ]$ su - # yum install @development
- Không nâng cấp
7 bên ngoài môi trường ảo$ su - # yum install @development
- Sử dụng đường dẫn đầy đủ đến tập lệnh trình bao bọc
7.$ su - # yum install @development
10$ su - # yum install @development
- Thêm
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$ su - # yum install @development
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
$ su -
# yum install @development
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 ảoGiả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
95Ngoà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
6Thê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