Hướng dẫn python developer notes - ghi chú nhà phát triển python

Bật bảng nội dung thanh bên

Cập nhật tự động tải safe-path để cho phép test_gdb chạycontributing to Python – for both new and experienced contributors. It is maintained by the same community that maintains Python. We welcome your contributions to Python!

Mẹo GDB

Phân tích động với tiếng kêusetup guide.

  1. Clang là gì?Git and other dependencies (see the Git Setup page for detailed information).

  2. Chất khử trùng là gì?get the source code using:

    git clone https://github.com//cpython
    cd cpython
    

  3. Cài đặt clang/LLVM

    ./configure --with-pydebug && make -j
    

    Cài đặt xây dựng Python

    Quét bao phủmore detailed instructions, how to install and build dependencies, and the platform-specific pages for UNIX, Mac OS, and Windows.

  4. Truy cập vào báo cáo phân tích:

    Phân tích xây dựng và tải lênmost Mac OS X systems, replace ./python with ./python.exe. On Windows, use python.bat.

  5. Những hạn chế đã biết

    git checkout -b fix-issue-12345 main
    

    Mô hình

  6. Quy trình làm việc

  7. Tiếp xúccreate a pull request. Include the issue number using gh-NNNN in the pull request description. For example:

    gh-12345: Fix some bug in spam module
    

  8. Trạng thái của phiên bản Pythondocumentation.

Phiên bản được hỗ trợ

Phiên bản không được hỗ trợLicensing section of this guide.

Khóa trạng thái

Hướng dẫn này là một nguồn tài nguyên toàn diện để đóng góp cho Python - cho cả những người đóng góp mới và có kinh nghiệm. Nó được duy trì bởi cùng một cộng đồng duy trì Python. Chúng tôi hoan nghênh những đóng góp của bạn cho Python!

  • Tham chiếu nhanh#

  • Dưới đây là các bước cơ bản cần thiết để được thiết lập và đóng góp một bản vá. Điều này có nghĩa là một danh sách kiểm tra, một khi bạn biết những điều cơ bản. Để được hướng dẫn đầy đủ, vui lòng xem hướng dẫn thiết lập.

  • Cài đặt và thiết lập Git và các phụ thuộc khác (xem trang Cài đặt Git để biết thông tin chi tiết).

  • Fork Kho lưu trữ CPython vào tài khoản GitHub của bạn và lấy mã nguồn bằng cách sử dụng:

  • Xây dựng Python, trên UNIX và Mac OS sử dụng:

Và trên Windows sử dụng:

Xem thêm các hướng dẫn chi tiết hơn, cách cài đặt và xây dựng các phụ thuộc và các trang dành riêng cho nền tảng cho Unix, Mac OS và Windows.Status of Python Versions

Contributing#

Chạy các bài kiểm tra:

Trên hầu hết các hệ thống Mac OS X, thay thế ./python bằng ./python.exe. Trên Windows, sử dụng python.bat.

Các nhà phát triển và người đóng góp cốt lõi cũng sẽ thấy các hướng dẫn sau đây hữu ích:

  • Cách đóng góp cho nguồn mở

  • Xây dựng cộng đồng chào đón

Hướng dẫn đóng góp cho Python:

Chúng tôi khuyên các tài liệu trong hướng dẫn này được đọc khi cần thiết. Bạn có thể dừng lại ở nơi bạn cảm thấy thoải mái và bắt đầu đóng góp ngay lập tức mà không cần đọc và hiểu các tài liệu này cùng một lúc. Nếu bạn chọn bỏ qua trong tài liệu, hãy lưu ý rằng nó được viết giả định rằng tài liệu trước đó đã được đọc để bạn có thể thấy cần phải quay lại để điền vào các khái niệm và thuật ngữ bị thiếu.recommend that the documents in this guide be read as needed. You can stop where you feel comfortable and begin contributing immediately without reading and understanding these documents all at once. If you do choose to skip around within the documentation, be aware that it is written assuming preceding documentation has been read so you may find it necessary to backtrack to fill in missing concepts and terminology.

Đề xuất các thay đổi cho chính Python#

Cải thiện mã, tài liệu và thử nghiệm của Python, là các nhiệm vụ đang diễn ra sẽ không bao giờ được hoàn thành, vì Python hoạt động như một phần của hệ thống công nghệ không ngừng phát triển. Một nhiệm vụ liên tục khó khăn hơn so với các hoạt động bảo trì cần thiết này là tìm cách tạo ra Python, dưới dạng thư viện tiêu chuẩn và định nghĩa ngôn ngữ, một công cụ thậm chí còn tốt hơn trong bộ công cụ của nhà phát triển.

Mặc dù các loại thay đổi này hiếm hơn nhiều so với những loại được mô tả ở trên, nhưng chúng xảy ra và quá trình đó cũng được mô tả như là một phần của hướng dẫn này:

  • Thêm vào stdlib

  • Thay đổi ngôn ngữ Python

Trình thông dịch khác triển khai#

Hướng dẫn này đặc biệt để đóng góp cho trình thông dịch tham chiếu Python, còn được gọi là CPython (trong khi hầu hết thư viện tiêu chuẩn được viết bằng Python, lõi phiên dịch được viết bằng C và tích hợp dễ dàng nhất với hệ sinh thái C và C ++).

Có các triển khai Python khác, mỗi lần có một trọng tâm khác nhau. Giống như Cpython, họ luôn có nhiều việc họ muốn làm hơn họ có các nhà phát triển để làm việc với họ. Một số ví dụ chính có thể được quan tâm là:

  • Pypy: Một thông dịch viên Python tập trung vào hoạt động tốc độ cao (được tổng hợp JIT) trên các nền tảng chính

  • Jython: Một thông dịch viên Python tập trung vào tích hợp tốt với môi trường máy ảo Java (JVM)

  • Ironpython: Một thông dịch viên Python tập trung vào tích hợp tốt với thời gian chạy ngôn ngữ chung (CLR) được cung cấp bởi .NET và mono

  • Stackless: Một trình thông dịch Python tập trung vào việc cung cấp các microthread nhẹ trong khi vẫn tương thích phần lớn với các mô -đun mở rộng cụ thể của CPython

Tài nguyên chính#

  • Hướng dẫn phong cách mã hóa
    • PEP 7 (Hướng dẫn kiểu cho mã C) (Style Guide for C Code)

    • PEP 8 (Hướng dẫn kiểu cho mã Python) (Style Guide for Python Code)

  • Người tìm bệnh
    • Trình theo dõi Meta (Trình theo dõi vấn đề cho Trình theo dõi vấn đề)

    • Chỉ số chuyên gia

  • Trạng thái xây dựng

  • Mã nguồn
    • Duyệt trực tuyến

    • Ảnh chụp nhanh của nhánh * chính *

    • Trình cài đặt OS X hàng ngày

  • PEPS (Đề xuất tăng cường Python)

  • Nhận trợ giúp ở đâu

  • Nhật ký nhà phát triển

Tài nguyên bổ sung#

  • Bất cứ ai cũng có thể sao chép các nguồn cho hướng dẫn này. Xem giúp đỡ với hướng dẫn của nhà phát triển.Helping with the Developer’s Guide.

  • Giúp với …
    • Khám phá nội bộ

    • Thay đổi ngữ pháp Cpython từ

    • Hướng dẫn cho trình phân tích cú pháp

    • Thiết kế trình biên dịch

    • Thiết kế bộ sưu tập rác

  • Hỗ trợ công cụ
    • Hỗ trợ GDB

    • Phân tích động với tiếng kêu

    • Các công cụ khác nhau với các tệp cấu hình như được tìm thấy trong thư mục linh tinh

    • Thông tin về các biên tập viên và cấu hình của chúng có thể được tìm thấy trong Wiki

  • Python.org Bảo trì

  • Tìm kiếm hướng dẫn này

Mã hành vi#

Xin lưu ý rằng tất cả các tương tác trên cơ sở hạ tầng được hỗ trợ bởi nền tảng phần mềm Python được bao phủ bởi Bộ quy tắc ứng xử PSF, bao gồm tất cả các cơ sở hạ tầng được sử dụng để phát triển chính Python (ví dụ: danh sách gửi thư, trình theo dõi phát hành, Github, v.v.). Nói chung, điều này có nghĩa là tất cả mọi người dự kiến ​​sẽ mở, ân cần và tôn trọng người khác bất kể vị trí của họ là gì trong dự án.

Bảng nội dung đầy đủ#

  • Bắt đầu
    • Thiết lập và xây dựng
      • Cài đặt
        ./configure --with-pydebug && make -j
        
        2
      • Nhận mã nguồn
      • Biên dịch và xây dựng
      • Cài đặt phụ thuộc
      • Tái tạo
        ./configure --with-pydebug && make -j
        
        3
      • Tái tạo bãi rác abi
      • Khắc phục sự cố xây dựng
      • Biên tập viên và công cụ
      • Cấu trúc thư mục
    • Khắc phục các vấn đề của Easy Easy (và hơn thế nữa)
    • Git bootcamp và bảng gian lận
      • Kho lưu trữ github cpython
      • Nhân bản kho lưu trữ cpython nĩa
      • Định cấu hình các điều khiển từ xa
      • Liệt kê các kho lưu trữ từ xa
      • Thiết lập tên và địa chỉ email của bạn
      • Bật
        ./configure --with-pydebug && make -j
        
        4 trên Windows
      • Tạo và chuyển đổi các nhánh
      • Xóa các nhánh
      • Đổi tên chi nhánh
      • Dàn dựng và cam kết các tập tin
      • Hoàn nguyên thay đổi
      • Stashing thay đổi
      • So sánh các thay đổi
      • Đẩy thay đổi
      • Tạo yêu cầu kéo
      • Liên kết với các vấn đề và kéo theo yêu cầu
      • Cập nhật nĩa cpython của bạn
      • Áp dụng một bản vá cho git
      • Tải xuống các bản vá khác
      • Chấp nhận và sáp nhập một yêu cầu kéo
      • Backporting hợp nhất thay đổi
      • Chỉnh sửa yêu cầu kéo trước khi sáp nhập
      • GitHub cli
    • Vòng đời của một yêu cầu kéo
      • Giới thiệu
      • Hướng dẫn nhanh
      • Hướng dẫn từng bước một
      • Làm PR tốt
      • ./configure --with-pydebug && make -j
        
        5
      • Thực hiện các cam kết tốt
      • Cấp phép
      • Đệ trình
      • Chuyển đổi một bản vá hiện có từ B.P.O sang GitHub
      • Xem xét
      • Để lại một đánh giá yêu cầu kéo trên GitHub
      • Bỏ qua đánh giá từ một nhà phát triển cốt lõi khác
      • Committing/Rejecting
      • Tín dụng
    • Nhận trợ giúp ở đâu
      • Đàm luận
      • Danh sách mail
      • Hỏi #Python-Dev
      • Zulip
      • Cố vấn cốt lõi
      • Giờ làm việc của nhà phát triển cốt lõi
      • Tập tin một lỗi
  • Quy trình công việc phát triển
    • Sau sự phát triển của Python
      • Tiêu chuẩn hành vi trong các kênh truyền thông này
      • Danh sách mail
      • Hỏi #Python-Dev
      • Zulip
      • Cố vấn cốt lõi
      • Giờ làm việc của nhà phát triển cốt lõi
      • Tập tin một lỗi
      • Quy trình công việc phát triển
    • Sau sự phát triển của Python
      • Tiêu chuẩn hành vi trong các kênh truyền thông này
      • Diễn ngôn (Thảo luận.Python.org Diễn đàn web)
      • Discord (máy chủ trò chuyện riêng tư)
    • IRC
      • Blog
      • Đặt kỳ vọng cho sự tham gia của nguồn mở
    • Kho lưu trữ bổ sung
    • Chu kỳ phát triển
      • Cành
      • Giai đoạn
      • Quản trị kho lưu trữ
    • Thêm vào stdlib
      • Thêm vào một mô-đun có sẵn
      • Thêm một mô -đun mới
      • Mô -đun mở rộng thư viện tiêu chuẩn
    • Thay đổi API Python từ C
      • API nội bộ
      • API công khai C
    • API giới hạn
  • Thay đổi ngôn ngữ Python
    • Những gì đủ điều kiện
      • Đề xuất các tính năng mới và thay đổi ngôn ngữ
      • Quá trình pep
    • Thay đổi ngữ pháp Cpython từ
      • trừu tượng
      • Danh mục
    • Chuyển sang một nền tảng mới
      • Vấn đề và triaging
      • Người tìm bệnh
      • Sử dụng trình theo dõi vấn đề
      • Không đồng ý với một nghị quyết về trình theo dõi vấn đề
      • Triaging một vấn đề
      • Danh sách kiểm tra cho Triaging
    • Giúp đỡ các vấn đề
      • Nhãn GitHub
      • Nhãn mục đích chung
      • Nhãn cụ thể cho các vấn đề
      • Nhãn cụ thể cho PRS
      • Nhãn GitHub cho PRS
      • Áp dụng nhãn cho các vấn đề
      • Tạo các liên kết đặc biệt trong một bình luận
      • Các vấn đề của GitHub cho người dùng BPO
      • Làm thế nào để định dạng bình luận của tôi một cách độc đáo?
      • Làm thế nào để đính kèm tệp vào một vấn đề?
      • Làm thế nào để liên kết đến các đường dẫn tệp trong kho lưu trữ khi viết nhận xét?
    • Làm thế nào để thực hiện tìm kiếm nâng cao?
      • Danh sách Nosy Nosy ở đâu?
  • Làm thế nào để thêm sự phụ thuộc vấn đề?
    • Cái gì trên trái đất là một người nộm của người Viking?
      • Trường giải quyết độ phân giải của người Viking đi đâu?
      • Các ưu tiên của các ưu tiên của người Viking thấp, và các ưu tiên quan trọng của người Viking, và các ưu tiên quan trọng của người Viking?
      • Làm thế nào để tìm một vấn đề ngẫu nhiên?
      • Nhãn hồi quy ở đâu?
    • Đội ba
      • Trở thành thành viên của nhóm Triage Python
      • Tài liệu
      • Bắt đầu
    • Làm thế nào để tìm một vấn đề ngẫu nhiên?
      • Nhãn hồi quy ở đâu?
      • Đội ba
      • Trở thành thành viên của nhóm Triage Python
      • Tài liệu
      • Bắt đầu
      • Giới thiệu
      • Xây dựng tài liệu
      • Hướng dẫn mẫu
      • Dịch
    • Giúp đỡ với tài liệu
      • Tài liệu Python
      • Giúp các vấn đề tài liệu
      • Đọc lại
    • Nhãn hồi quy ở đâu?
      • Đội ba
      • Trở thành thành viên của nhóm Triage Python
      • Tài liệu
      • Bắt đầu
    • Giới thiệu
      • Xây dựng tài liệu
  • Hướng dẫn mẫu
    • Dịch
      • Giúp đỡ với tài liệu
      • Tài liệu Python
      • Giúp các vấn đề tài liệu
    • Đọc lại
    • Sử dụng khoảng trắng
      • Chú thích
      • viết hoa
      • Giai điệu khẳng định
      • Nền kinh tế biểu hiện
    • Cân nhắc bảo mật (và các mối quan tâm khác)
      • Ví dụ mã
      • Mã tương đương
      • Sự tiếp kiến
      • Tái cấu trúc đánh dấu
      • Tham khảo nhanh
      • Tái cấu trúc mồi
      • Cấu trúc đánh dấu bổ sung
      • Bắt đầu một bản dịch mới
    • Tóm tắt PEP 545
      • Làm thế nào để nhận trợ giúp
      • Câu hỏi thường gặp về dịch
      • Giúp đỡ với hướng dẫn của nhà phát triển
      • Hướng dẫn phát triển quy trình làm việc
      • Kiểm tra và xây dựng
      • Kiểm tra chạy và viết
  • Đang chạy
    • Viết
      • Điểm chuẩn
      • Cảnh báo im lặng từ bộ thử nghiệm
      • Tăng phạm vi kiểm tra
      • Gotchas phổ biến
    • Đo lường phạm vi bảo hiểm
      • Nộp đơn
      • Đo lường phạm vi bảo hiểm của mã C với GCOV và LCOV
      • Làm việc với Buildbots
    • Trong trường hợp rắc rối
      • Buildbot thất bại trên các yêu cầu kéo
      • Kiểm tra kết quả của các bản dựng tự động
      • Sự ổn định
      • Thất bại phụ thuộc vào cờ
      • Thất bại phụ thuộc vào đơn đặt hàng
    • Thất bại thoáng qua
      • Nhà xây dựng tùy chỉnh
    • Công nhân xây dựng mới
      • Chuẩn bị cho thiết lập công nhân xây dựng
      • Thiết lập công nhân xây dựng
      • Hoạt động công nhân xây dựng
    • Cổng bắt buộc
      • Tài nguyên cần thiết
      • Cân nhắc về Bảo mật
  • Các nhà phát triển cốt lõi
    • Trách nhiệm
      • Kênh truyền thông và thông báo lỗi
      • Ký một thỏa thuận đóng góp
    • Kéo yêu cầu hợp nhất
      • API nội bộ
      • API công khai C
      • API giới hạn
      • Thay đổi ngôn ngữ Python
      • Những gì đủ điều kiện
      • Đề xuất các tính năng mới và thay đổi ngôn ngữ
      • Quá trình pep
    • Thay đổi ngữ pháp Cpython từ
      • API nội bộ
      • API công khai C
      • API giới hạn
      • Thay đổi ngôn ngữ Python
      • Những gì đủ điều kiện
      • Đề xuất các tính năng mới và thay đổi ngôn ngữ
      • Quá trình pep
      • Thay đổi ngữ pháp Cpython từ
      • trừu tượng
      • Danh mục
      • Chuyển sang một nền tảng mới
      • Quá trình pep
    • Thay đổi ngữ pháp Cpython từ
      • API nội bộ
      • API công khai C
      • API giới hạn
      • Thay đổi ngôn ngữ Python
      • Những gì đủ điều kiện
      • Đề xuất các tính năng mới và thay đổi ngôn ngữ
      • Quá trình pep
  • Thay đổi ngữ pháp Cpython từ
    • trừu tượng
      • Danh mục
      • Chuyển sang một nền tảng mới
      • Vấn đề và triaging
      • Người tìm bệnh
    • Sử dụng trình theo dõi vấn đề
      • Không đồng ý với một nghị quyết về trình theo dõi vấn đề
      • Triaging một vấn đề
      • Danh sách kiểm tra cho Triaging
      • Giúp đỡ các vấn đề
    • Nhãn GitHub
      • Nhãn mục đích chung
      • Nhãn cụ thể cho các vấn đề
      • Nhãn cụ thể cho PRS
      • Nhãn GitHub cho PRS
      • Áp dụng nhãn cho các vấn đề
      • Tạo các liên kết đặc biệt trong một bình luận
  • Các vấn đề của GitHub cho người dùng BPO
    • Làm thế nào để định dạng bình luận của tôi một cách độc đáo?
    • Làm thế nào để đính kèm tệp vào một vấn đề?
    • Làm thế nào để liên kết đến các đường dẫn tệp trong kho lưu trữ khi viết nhận xét?