Hướng dẫn install python from source - cài đặt python từ nguồn

Contents

Show
  • Hướng dẫn cài đặt Python 3.x bằng source trên CentOS/RHEL 6/7
    • 1. Cài đặt phần mềm cần thiết
    • 2. Download và compile source Python 3.x


Với bài viết này mình sẽ hướng dẫn các bạn cách cài đặt Python 3.x lên hệ thống CentOS/RHEL 6/7 bằng phương pháp compile source code python 3.x .

1. Cài đặt phần mềm cần thiết

2. Download và compile source Python 3.xyum-utils“.
– Sau đấy sử dụng “yum-builddep“, để có thể build môi trường cần thiết cho python3 và cài đặt thêm các phần mềm cần thiết. Chương trình sẽ tự động cài đặt cho bạn.

# sudo yum install yum-utils
# sudo yum-builddep python

Với bài viết này mình sẽ hướng dẫn các bạn cách cài đặt Python 3.x lên hệ thống CentOS/RHEL 6/7 bằng phương pháp compile source code python 3.x .

– Cài đặt phần mềm “yum-utils“.– Sau đấy sử dụng “yum-builddep“, để có thể build môi trường cần thiết cho python3 và cài đặt thêm các phần mềm cần thiết. Chương trình sẽ tự động cài đặt cho bạn.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz


2. Download và compile source Python 3.x /usr/local.

– Nếu bạn không muốn thay đổi phiên bản python đang hoạt động mặc định của hệ thống thì ta sẽ dùng option “make altinstall“, sẽ cài đặt python 3.x như một phiên bản khác hoạt động trên hệ thống khi bạn cần sử dụng.

– Kế đến ta sẽ download bản source python 3.x ở link : https://www.python.org/ftp/python/

– Sau đấy tiến hành compile cài đặt source python. Đường dẫn cài đặt mặc định là /usr/local.– Nếu bạn không muốn thay đổi phiên bản python đang hoạt động mặc định của hệ thống thì ta sẽ dùng option “make altinstall“, sẽ cài đặt python 3.x như một phiên bản khác hoạt động trên hệ thống khi bạn cần sử dụng.


# tar xf Python-3.5.1.tgz
# cd Python-3.5.1
# ./configure
# make
# make altinstall

Các hướng dẫn này bao gồm cách lấy một bản sao hoạt động của mã nguồn và phiên bản biên dịch của trình thông dịch CPython (CPython là phiên bản Python có sẵn từ https://www.python.org/). Nó cũng cung cấp một cái nhìn tổng quan về cấu trúc thư mục của mã nguồn cpython.

Ngoài ra, nếu bạn đã cài đặt Docker, bạn có thể muốn sử dụng hình ảnh chính thức của chúng tôi. Chúng chứa các bản phát hành mới nhất của một số phiên bản Python, cùng với Git Head và chỉ được cung cấp cho mục đích phát triển và thử nghiệm.

Xem thêm

Tham chiếu nhanh đưa ra tóm tắt ngắn gọn về quá trình từ việc cài đặt GIT đến gửi yêu cầu kéo.Quick Reference gives brief summary of the process from installing git to submitting a pull request.

Cài đặt ________ 21#

CPython được phát triển bằng cách sử dụng Git để kiểm soát phiên bản. Chương trình dòng lệnh Git được đặt tên là

# tar xf Python-3.5.1.tgz
# cd Python-3.5.1
# ./configure
# make
# make altinstall
1; Điều này cũng được sử dụng để đề cập đến chính Git. Git dễ dàng có sẵn cho tất cả các hệ điều hành chung.

  • Cài đặt

    Vì repo Cpython được lưu trữ trên GitHub, vui lòng tham khảo các hướng dẫn thiết lập GitHub hoặc hướng dẫn dự án Git để hướng dẫn cài đặt từng bước. Bạn cũng có thể muốn xem xét một máy khách đồ họa như Tortoisgit hoặc GitHub Desktop.

  • Cấu hình

    Định cấu hình tên và email của bạn và tạo khóa SSH vì điều này sẽ cho phép bạn tương tác với GitHub mà không cần gõ tên người dùng và mật khẩu mỗi khi bạn thực thi lệnh, chẳng hạn như

    # tar xf Python-3.5.1.tgz
    # cd Python-3.5.1
    # ./configure
    # make
    # make altinstall
    3,
    # tar xf Python-3.5.1.tgz
    # cd Python-3.5.1
    # ./configure
    # make
    # make altinstall
    4 hoặc
    # tar xf Python-3.5.1.tgz
    # cd Python-3.5.1
    # ./configure
    # make
    # make altinstall
    5. Trên Windows, bạn cũng nên kích hoạt Autoclf.your name and email and create an SSH key as this will allow you to interact with GitHub without typing a username and password each time you execute a command, such as
    # tar xf Python-3.5.1.tgz
    # cd Python-3.5.1
    # ./configure
    # make
    # make altinstall
    3,
    # tar xf Python-3.5.1.tgz
    # cd Python-3.5.1
    # ./configure
    # make
    # make altinstall
    4, or
    # tar xf Python-3.5.1.tgz
    # cd Python-3.5.1
    # ./configure
    # make
    # make altinstall
    5. On Windows, you should also enable autocrlf.

Nhận mã nguồn#

REPO CPYThon được lưu trữ trên GitHub. Để có được một bản sao của mã nguồn, bạn nên bỏ kho lưu trữ Python trên GitHub, tạo một bản sao cục bộ của ngã ba cá nhân của bạn và định cấu hình các điều khiển từ xa.fork the Python repository on GitHub, create a local clone of your personal fork, and configure the remotes.

Bạn sẽ chỉ cần thực hiện các bước này một lần:

  1. Truy cập https://github.com/python/cpython.

  2. Nhấn Fork lên trên cùng bên phải.Fork on the top right.

  3. Khi được hỏi ở đâu để rẽ vào kho lưu trữ, hãy chọn đặt nó vào tên người dùng của bạn.

  4. Ngã ba của bạn sẽ được tạo tại

    # tar xf Python-3.5.1.tgz
    # cd Python-3.5.1
    # ./configure
    # make
    # make altinstall
    6.

  5. Clone của bạn Fork Fork (thay thế

    # tar xf Python-3.5.1.tgz
    # cd Python-3.5.1
    # ./configure
    # make
    # make altinstall
    7 bằng tên người dùng của bạn):

    $ git clone :/cpython.git
    

    (Bạn có thể sử dụng cả URL dựa trên SSH hoặc dựa trên HTTPS.)

  6. Định cấu hình điều khiển từ xa

    # tar xf Python-3.5.1.tgz
    # cd Python-3.5.1
    # ./configure
    # make
    # make altinstall
    8:

    $ cd cpython
    $ git remote add upstream :python/cpython.git
    

  7. Xác minh rằng thiết lập của bạn là chính xác:

    $ git remote -v
    origin  :/cpython.git (fetch)
    origin  :/cpython.git (push)
    upstream        :python/cpython.git (fetch)
    upstream        :python/cpython.git (push)
    

Nếu bạn đã làm mọi thứ một cách chính xác, bây giờ bạn nên có một bản sao của mã trong thư mục

# tar xf Python-3.5.1.tgz
# cd Python-3.5.1
# ./configure
# make
# make altinstall
9 và hai điều khiển từ xa đề cập đến Fork GitHub của riêng bạn (
$ git clone :/cpython.git
0) và kho lưu trữ CPython chính thức (
# tar xf Python-3.5.1.tgz
# cd Python-3.5.1
# ./configure
# make
# make altinstall
8).

Nếu bạn muốn một bản sao làm việc của một phiên bản Python đã phát hành, tức là, một phiên bản ở chế độ bảo trì, bạn có thể kiểm tra một nhánh phát hành. Chẳng hạn, để kiểm tra một bản sao làm việc của Python 3.8, làm

$ git clone :/cpython.git
2.maintenance mode, you can checkout a release branch. For instance, to checkout a working copy of Python 3.8, do
$ git clone :/cpython.git
2.

Bạn sẽ cần phải tổng hợp CPython khi bạn thực hiện bản cập nhật như vậy.

Xin lưu ý rằng Cpython sẽ nhận thấy rằng nó đang được chạy từ một bản sao làm việc. Điều này có nghĩa là nếu bạn chỉnh sửa mã nguồn CPython, trong bản sao làm việc của bạn, các thay đổi thành mã Python sẽ được thông dịch viên chọn để sử dụng và kiểm tra ngay lập tức. (Nếu bạn thay đổi mã C, bạn sẽ cần biên dịch lại các tệp bị ảnh hưởng như được mô tả bên dưới.)

Các bản vá cho tài liệu có thể được thực hiện từ cùng một kho lưu trữ; Xem bắt đầu.Getting Started.

Biên dịch và xây dựng#

Cpython cung cấp một số cờ biên dịch giúp gỡ lỗi nhiều thứ khác nhau. Mặc dù tất cả các lá cờ đã biết có thể được tìm thấy trong tệp

$ git clone :/cpython.git
3, nhưng cái quan trọng nhất là cờ
$ git clone :/cpython.git
4 tạo ra cái được gọi là bản dựng của Pydebug. Cờ này bật các kiểm tra độ tỉnh bổ sung khác nhau giúp nắm bắt các vấn đề chung. Việc sử dụng cờ rất phổ biến đến nỗi bật cờ là một tùy chọn biên dịch cơ bản.

Bạn nên luôn luôn phát triển theo bản dựng Pydebug của Cpython (ví dụ duy nhất khi bạn không nên là nếu bạn đang thực hiện các phép đo hiệu suất). Ngay cả khi chỉ làm việc trên mã Python thuần túy, bản dựng Pydebug cung cấp một số kiểm tra hữu ích mà người ta không nên bỏ qua.

UNIX#

Trình thông dịch Cpython cốt lõi chỉ cần xây dựng trình biên dịch C, tuy nhiên, một số mô -đun mở rộng sẽ cần các tiêu đề phát triển cho các thư viện bổ sung (như thư viện

$ git clone :/cpython.git
5 để nén). Tùy thuộc vào những gì bạn dự định làm việc, bạn có thể cần cài đặt các yêu cầu bổ sung này để trình thông dịch được biên dịch hỗ trợ các tính năng mong muốn.

Nếu bạn muốn cài đặt các phụ thuộc tùy chọn này, hãy tham khảo phần phụ thuộc cài đặt bên dưới.Install dependencies section below.

Nếu bạn không cần phải cài đặt chúng, các bước cơ bản để xây dựng Python để phát triển là cấu hình nó và sau đó biên dịch nó.

Cấu hình thường là:

./configure --with-pydebug

Nhiều cờ có sẵn cho

$ git clone :/cpython.git
6, nhưng đây là mức tối thiểu bạn nên làm để có được bản dựng Pydebug của Cpython.

Ghi chú

Bạn có thể cần phải chạy

$ git clone :/cpython.git
7 trước hoặc sau khi chạy lại
$ git clone :/cpython.git
6 trong một thư mục xây dựng cụ thể.

Sau khi hoàn thành

$ git clone :/cpython.git
6, bạn có thể biên dịch CPython với:

Điều này sẽ xây dựng Cpython chỉ với các cảnh báo và lỗi được in cho Stderr và sử dụng tối đa 2 lõi CPU. Nếu bạn đang sử dụng một máy đa lõi với hơn 2 lõi (hoặc máy lõi đơn), bạn có thể điều chỉnh số được truyền vào cờ

$ cd cpython
$ git remote add upstream :python/cpython.git
0 để phù hợp với số lượng lõi bạn có (hoặc nếu phiên bản của bạn tạo ra hỗ trợ nó , bạn có thể sử dụng
$ cd cpython
$ git remote add upstream :python/cpython.git
0 mà không có số và thực hiện sẽ không giới hạn số bước có thể chạy đồng thời.).

Vào cuối bản dựng, bạn sẽ thấy một thông điệp thành công, có thể theo sau là danh sách các mô -đun mở rộng mà thiên đường đã được xây dựng vì sự phụ thuộc của chúng bị thiếu:

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm
_lzma                 _sqlite3              _ssl
_tkinter              _uuid                 readline
zlib
To find the necessary bits, look in setup.py in detect_modules()
for the module's name.

Nếu bản dựng không thành công và bạn đang sử dụng trình biên dịch tuân thủ C89 hoặc C99, vui lòng mở báo cáo lỗi về trình theo dõi vấn đề.

Nếu bạn quyết định cài đặt các phụ thuộc, bạn sẽ cần chạy lại cả

$ git clone :/cpython.git
6 và
$ cd cpython
$ git remote add upstream :python/cpython.git
3.Install dependencies, you will need to re-run both
$ git clone :/cpython.git
6 and
$ cd cpython
$ git remote add upstream :python/cpython.git
3.

Khi CPython hoàn thành xây dựng, bạn sẽ có một bản dựng hoạt động có thể được chạy tại chỗ;

$ cd cpython
$ git remote add upstream :python/cpython.git
4 trên hầu hết các máy (và những gì được sử dụng trong tất cả các ví dụ),
$ cd cpython
$ git remote add upstream :python/cpython.git
5 bất cứ nơi nào sử dụng hệ thống tập tin không nhạy cảm trường hợp (ví dụ: trên OS X theo mặc định), để tránh xung đột với thư mục
$ cd cpython
$ git remote add upstream :python/cpython.git
6. Thông thường không cần phải cài đặt bản sao Python được xây dựng của bạn! Trình thông dịch sẽ nhận ra nơi nó đang được chạy và do đó sử dụng các tệp được tìm thấy trong bản sao làm việc. Nếu bạn lo lắng, bạn có thể vô tình cài đặt bản dựng bản sao làm việc của mình, bạn có thể thêm
$ cd cpython
$ git remote add upstream :python/cpython.git
7 vào bước cấu hình. Khi chạy từ thư mục làm việc của bạn, tốt nhất là tránh sử dụng cờ
$ cd cpython
$ git remote add upstream :python/cpython.git
8 đến
$ git clone :/cpython.git
6; Trừ khi bạn rất cẩn thận, bạn có thể vô tình chạy với mã từ một thư viện Python được cài đặt cũ hơn thay vì từ trình thông dịch mà bạn vừa xây dựng.

Clang#

Nếu bạn đang sử dụng Clang để xây dựng Cpython, một số cờ bạn có thể muốn đặt để làm im lặng một số cảnh báo tiêu chuẩn đặc biệt thừa đối với CPython là

$ git remote -v
origin  :/cpython.git (fetch)
origin  :/cpython.git (push)
upstream        :python/cpython.git (fetch)
upstream        :python/cpython.git (push)
0. Bạn có thể đặt biến môi trường
$ git remote -v
origin  :/cpython.git (fetch)
origin  :/cpython.git (push)
upstream        :python/cpython.git (fetch)
upstream        :python/cpython.git (push)
1 của mình cho các cờ này khi chạy
$ git clone :/cpython.git
6.

Nếu bạn đang sử dụng Clang với CCache, hãy tắt cảnh báo

$ git remote -v
origin  :/cpython.git (fetch)
origin  :/cpython.git (push)
upstream        :python/cpython.git (fetch)
upstream        :python/cpython.git (push)
3 ồn ào với cờ
$ git remote -v
origin  :/cpython.git (fetch)
origin  :/cpython.git (push)
upstream        :python/cpython.git (fetch)
upstream        :python/cpython.git (push)
4. Những cảnh báo này được gây ra bởi tiếng kêu không có đủ thông tin để phát hiện dấu ngoặc đơn bên ngoài trong các macro mở rộng là hợp lệ, bởi vì tiền xử lý được thực hiện riêng biệt bởi CCache.

Nếu bạn đang sử dụng LLVM 2.8, cũng sử dụng cờ

$ git remote -v
origin  :/cpython.git (fetch)
origin  :/cpython.git (push)
upstream        :python/cpython.git (fetch)
upstream        :python/cpython.git (push)
5 để xây dựng mô -đun
$ git remote -v
origin  :/cpython.git (fetch)
origin  :/cpython.git (push)
upstream        :python/cpython.git (fetch)
upstream        :python/cpython.git (push)
6 (không có cờ, phần còn lại của CPython vẫn sẽ được xây dựng đúng cách).

Windows#

Để có hướng dẫn nhanh để xây dựng, bạn có thể đọc tài liệu này từ Victor Stinner.

Tất cả các phiên bản hiện tại của Python có thể được xây dựng bằng Microsoft Visual Studio 2017 trở lên. Bạn có thể tải xuống và sử dụng bất kỳ phiên bản miễn phí hoặc trả phí nào của Visual Studio 2017.

Khi cài đặt Visual Studio 2017, hãy chọn khối lượng công việc phát triển Python và thành phần công cụ phát triển gốc Python tùy chọn để có được tất cả các công cụ xây dựng cần thiết. Nếu bạn chưa cài đặt Git, bạn có thể tìm thấy Git cho Windows trên tab Thành phần riêng lẻ của trình cài đặt.Python development workload and the optional Python native development tools component to obtain all of the necessary build tools. If you do not already have git installed, you can find git for Windows on the Individual components tab of the installer.

Ghi chú

Nếu bạn muốn xây dựng trình cài đặt MSI, hãy lưu ý rằng công cụ xây dựng cho họ có sự phụ thuộc vào phiên bản Microsoft .NET Framework 3.5 (có thể không được cấu hình trên các phiên bản Windows gần đây, chẳng hạn như Windows 10). Nếu bạn đang xây dựng trên phiên bản Windows gần đây, hãy sử dụng bảng điều khiển (chương trình | Chương trình và tính năng | BẬT hoặc TẮT TẮT Windows) và đảm bảo rằng mục nhập .NET Framework 3.5 (bao gồm .NET 2.0 và 3.0) được bật.

Bản dựng đầu tiên của bạn nên sử dụng dòng lệnh để đảm bảo tải xuống mọi phụ thuộc bên ngoài:

Sau khi bản dựng này thành công, bạn có thể mở giải pháp

$ git remote -v
origin  :/cpython.git (fetch)
origin  :/cpython.git (push)
upstream        :python/cpython.git (fetch)
upstream        :python/cpython.git (push)
7 trong Visual Studio để tiếp tục phát triển.

Xem README để biết thêm chi tiết về phần mềm khác là cần thiết và cách xây dựng.

Ghi chú

Nếu bạn muốn xây dựng trình cài đặt MSI, hãy lưu ý rằng công cụ xây dựng cho họ có sự phụ thuộc vào phiên bản Microsoft .NET Framework 3.5 (có thể không được cấu hình trên các phiên bản Windows gần đây, chẳng hạn như Windows 10). Nếu bạn đang xây dựng trên phiên bản Windows gần đây, hãy sử dụng bảng điều khiển (chương trình | Chương trình và tính năng | BẬT hoặc TẮT TẮT Windows) và đảm bảo rằng mục nhập .NET Framework 3.5 (bao gồm .NET 2.0 và 3.0) được bật.

Bản dựng đầu tiên của bạn nên sử dụng dòng lệnh để đảm bảo tải xuống mọi phụ thuộc bên ngoài:

Sau khi bản dựng này thành công, bạn có thể mở giải pháp

$ git remote -v
origin  :/cpython.git (fetch)
origin  :/cpython.git (push)
upstream        :python/cpython.git (fetch)
upstream        :python/cpython.git (push)
7 trong Visual Studio để tiếp tục phát triển.Linux and macOs/OS X. On Windows, extensions are already included and built automatically.

Linux#

Xem README để biết thêm chi tiết về phần mềm khác là cần thiết và cách xây dựng.

Nếu bạn đang sử dụng hệ thống con Windows cho Linux (WSL), hãy sao chép kho lưu trữ từ chương trình thiết bị đầu cuối Windows gốc như CMD.EXE Command Prompt hoặc PowerShell cũng như sử dụng bản dựng git được nhắm mục tiêu cho Windows, ví dụ: bản chính thức từ HTTPS: //git-scm.com. Nếu không, Visual Studio sẽ không thể tìm thấy tất cả các tệp dự án và sẽ thất bại trong bản dựng.Fedora, Red Hat Enterprise Linux and other

$ git remote -v
origin  :/cpython.git (fetch)
origin  :/cpython.git (push)
upstream        :python/cpython.git (fetch)
upstream        :python/cpython.git (push)
9 based systems:

$ sudo yum install yum-utils
$ sudo yum-builddep python3

Cài đặt phụ thuộc#Fedora and other

./configure --with-pydebug
0 based systems:

$ sudo dnf install dnf-plugins-core  # install this to use 'dnf builddep'
$ sudo dnf builddep python3

Phần này giải thích cách cài đặt các tiện ích mở rộng bổ sung (ví dụ:

$ git clone :/cpython.git
5) trên Linux và MacOS/OS X. Trên Windows, các tiện ích mở rộng đã được bao gồm và xây dựng tự động.Debian, Ubuntu, and other
./configure --with-pydebug
1 based systems, try to get the dependencies for the Python you’re working on by using the
./configure --with-pydebug
1 command.

Đối với các hệ thống dựa trên UNIX, chúng tôi cố gắng sử dụng các thư viện hệ thống bất cứ khi nào có sẵn. Điều này có nghĩa là các thành phần tùy chọn sẽ chỉ xây dựng nếu các tiêu đề hệ thống có liên quan có sẵn. Cách tốt nhất để có được các tiêu đề thích hợp sẽ thay đổi theo phân phối, nhưng các lệnh thích hợp cho một số phân phối phổ biến là bên dưới.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
0

Ngoài ra, các dòng Uncomment với

./configure --with-pydebug
4 bằng trình soạn thảo, ví dụ:

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
1

Đối với các phân phối khác, như Debian, thay đổi URL và tên để tương ứng với phân phối cụ thể.

Sau đó, bạn nên cập nhật chỉ mục gói:

Bây giờ bạn có thể cài đặt các phụ thuộc xây dựng thông qua

./configure --with-pydebug
1:

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
2

Nếu bạn muốn xây dựng tất cả các mô -đun tùy chọn, hãy cài đặt các gói sau và phụ thuộc của chúng:

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
3

MacOS và OS X#

Đối với các hệ thống MacOS (phiên bản 10.12+) và OS X 10.9 trở lên, các công cụ phát triển có thể được tải xuống và cài đặt tự động; Bạn không cần phải tải xuống ứng dụng Xcode hoàn chỉnh.macOS systems (versions 10.12+) and OS X 10.9 and later, the Developer Tools can be downloaded and installed automatically; you do not need to download the complete Xcode application.

Nếu cần thiết, hãy chạy như sau:

Điều này cũng sẽ đảm bảo rằng các tệp tiêu đề hệ thống được cài đặt vào

./configure --with-pydebug
6.

Trên Mac OS X Systems (phiên bản 10.0 - 10.7) và OS X 10.8, sử dụng trình biên dịch C và các tiện ích phát triển khác được cung cấp bởi các công cụ dành cho nhà phát triển Apple Apple Xcode. Các công cụ của nhà phát triển không được vận chuyển với Mac OS X.Mac OS X systems (versions 10.0 - 10.7) and OS X 10.8, use the C compiler and other development utilities provided by Apple’s Xcode Developer Tools. The Developer Tools are not shipped with Mac OS X.

Đối với các bản phát hành cũ hơn này (phiên bản 10.0 - 10.8), bạn sẽ cần tải xuống đúng phiên bản của các công cụ dòng lệnh, nếu có hoặc cài đặt chúng từ ứng dụng Xcode đầy đủ hoặc gói cho bản phát hành OS X đó. Các phiên bản cũ hơn có thể có sẵn dưới dạng tải xuống miễn phí thông qua Apple App Store hoặc từ trang web của nhà phát triển Apple.older releases (versions 10.0 - 10.8), you will need to download either the correct version of the Command Line Tools, if available, or install them from the full Xcode app or package for that OS X release. Older versions may be available either as a no-cost download through Apple’s App Store or from the Apple Developer web site.

Cũng lưu ý rằng OS X không bao gồm một số thư viện được sử dụng bởi Thư viện tiêu chuẩn Python, bao gồm

./configure --with-pydebug
7, vì vậy, dự kiến ​​sẽ thấy một số lỗi xây dựng mô -đun mở rộng trừ khi bạn cài đặt các bản sao cục bộ của chúng. Kể từ OS X 10.11, Apple không còn cung cấp các tệp tiêu đề cho phiên bản hệ thống không dùng nữa của OpenSSL, điều đó có nghĩa là bạn sẽ không thể xây dựng tiện ích mở rộng
./configure --with-pydebug
8. Một giải pháp là cài đặt các thư viện này từ Trình quản lý gói của bên thứ ba, như Homebrew hoặc MacPorts, sau đó thêm các đường dẫn thích hợp cho các tệp tiêu đề và thư viện vào lệnh
$ git clone :/cpython.git
6 của bạn. Ví dụ,

với homebrew:Homebrew:

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
4

Cho Python 3.10 và mới hơn:

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
5

Đối với các phiên bản Python 3.9 đến 3.7:

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
6

$ cd cpython
$ git remote add upstream :python/cpython.git
3:

hoặc macports:MacPorts:

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
7

$ git clone :/cpython.git
6:

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
8

$ cd cpython
$ git remote add upstream :python/cpython.git
3:

hoặc macports:

$ git clone :/cpython.git
6:

Đôi khi sẽ có các mô -đun tùy chọn được thêm vào cho một bản phát hành mới mà won chưa được xác định trong các phụ thuộc xây dựng cấp hệ điều hành. Trong những trường hợp đó, chỉ cần yêu cầu hỗ trợ trong danh sách lõi.

Giải thích cách xây dựng các phụ thuộc tùy chọn vào một hệ thống dựa trên UNIX mà không có quyền truy cập root nằm ngoài phạm vi của hướng dẫn này.

Để biết thêm chi tiết về các tùy chọn và cân nhắc khác nhau để xây dựng, hãy tham khảo MacOS Readme.

Ghi chú

Mặc dù bạn cần một trình biên dịch C để xây dựng Cpython, bạn không cần bất kỳ kiến ​​thức nào về ngôn ngữ C để đóng góp! Các khu vực rộng lớn của Cpython được viết hoàn toàn bằng Python: Khi viết bài này, Cpython chứa mã Python hơi hơn một chút so với C.

Tái tạo ________ 36#

Nếu một sự thay đổi được thực hiện cho Python dựa trên một số chức năng dành riêng cho hệ thống POSIX (chẳng hạn như sử dụng lệnh gọi hệ thống mới), thì cần phải cập nhật tập lệnh

$ git clone :/cpython.git
6 để kiểm tra tính khả dụng của chức năng.

Tập lệnh Python từ

$ git clone :/cpython.git
6 được tạo từ
Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm
_lzma                 _sqlite3              _ssl
_tkinter              _uuid                 readline
zlib
To find the necessary bits, look in setup.py in detect_modules()
for the module's name.
6 bằng AutoConf. Thay vì chỉnh sửa
$ git clone :/cpython.git
6, chỉnh sửa
Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm
_lzma                 _sqlite3              _ssl
_tkinter              _uuid                 readline
zlib
To find the necessary bits, look in setup.py in detect_modules()
for the module's name.
6 và sau đó chạy
Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm
_lzma                 _sqlite3              _ssl
_tkinter              _uuid                 readline
zlib
To find the necessary bits, look in setup.py in detect_modules()
for the module's name.
9 để tái tạo
$ git clone :/cpython.git
6 và một số tệp khác (chẳng hạn như
$ sudo yum install yum-utils
$ sudo yum-builddep python3
1).

Khi gửi một bản vá với các thay đổi được thực hiện cho

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm
_lzma                 _sqlite3              _ssl
_tkinter              _uuid                 readline
zlib
To find the necessary bits, look in setup.py in detect_modules()
for the module's name.
6, bạn cũng nên bao gồm các tệp được tạo.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
9

Lưu ý rằng chạy

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm
_lzma                 _sqlite3              _ssl
_tkinter              _uuid                 readline
zlib
To find the necessary bits, look in setup.py in detect_modules()
for the module's name.
9 không giống như chạy
$ sudo yum install yum-utils
$ sudo yum-builddep python3
4. Ví dụ,
$ sudo yum install yum-utils
$ sudo yum-builddep python3
4 tự nó sẽ không tái tạo
$ sudo yum install yum-utils
$ sudo yum-builddep python3
6.
Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm
_lzma                 _sqlite3              _ssl
_tkinter              _uuid                 readline
zlib
To find the necessary bits, look in setup.py in detect_modules()
for the module's name.
9 chạy
$ sudo yum install yum-utils
$ sudo yum-builddep python3
4 và một số công cụ khác nhiều lần là phù hợp.

Tập lệnh Python từ ____ ____76 thường yêu cầu một phiên bản AutoCONF cụ thể. Hiện tại, điều này có nội dung: $ sudo dnf install dnf-plugins-core # install this to use 'dnf builddep' $ sudo dnf builddep python3 0. Nó cũng yêu cầu phải có các tiện ích $ sudo dnf install dnf-plugins-core # install this to use 'dnf builddep' $ sudo dnf builddep python3 1 và $ sudo dnf install dnf-plugins-core # install this to use 'dnf builddep' $ sudo dnf builddep python3 2 được cài đặt trong hệ thống và tệp macro $ sudo dnf install dnf-plugins-core # install this to use 'dnf builddep' $ sudo dnf builddep python3 3 nằm ở vị trí $ sudo dnf install dnf-plugins-core # install this to use 'dnf builddep' $ sudo dnf builddep python3 4 thích hợp. Bạn có thể dễ dàng kiểm tra xem điều này có được cấu hình chính xác bằng cách chạy không:

Nếu bản sao hệ thống của AutoConf không khớp với phiên bản này, bạn sẽ cần cài đặt bản sao AutoConf của riêng mình.

Tái tạo bãi rác abi#doesn’t necessarily mean that the Pull Request cannot be merged. When this check fails you should add the relevant release manager to the PR so that they are aware of the change and they can validate if the change can be made or not.

Quan trọng

Thay đổi ABI được cho phép trước khi ứng cử viên phát hành đầu tiên. Sau khi ứng cử viên phát hành đầu tiên, tất cả các bản phát hành tiếp theo phải có cùng ABI để đảm bảo khả năng tương thích với các tiện ích mở rộng gốc và các công cụ khác tương tác với trình thông dịch Python. Xem tài liệu về giai đoạn ứng cử viên phát hành.release candidate phase.

Bạn có thể tự mình tái tạo tệp ABI bằng cách gọi mục tiêu

$ sudo dnf install dnf-plugins-core  # install this to use 'dnf builddep'
$ sudo dnf builddep python3
8. Lưu ý rằng để thực hiện điều này, bạn cần phải tái tạo tệp ABI trong cùng một môi trường mà GitHub CI sử dụng để kiểm tra nó. Điều này là do các nền tảng khác nhau có thể bao gồm một số chi tiết dành riêng cho nền tảng làm cho việc kiểm tra thất bại ngay cả khi Python ABI là như nhau. Cách dễ dàng hơn để tái tạo tệp ABI bằng cách sử dụng cùng một nền tảng với CI sử dụng là sử dụng Docker:

# tar xf Python-3.5.1.tgz
# cd Python-3.5.1
# ./configure
# make
# make altinstall
0

Lưu ý rằng phiên bản

$ sudo dnf install dnf-plugins-core  # install this to use 'dnf builddep'
$ sudo dnf builddep python3
9 được sử dụng để thực thi các vấn đề tập lệnh và phải khớp với phiên bản được CI sử dụng để kiểm tra ABI. Xem tệp
# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
00 để biết thêm thông tin.must match the version used by the CI to check the ABI. See the
# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
00 file for more information.

Khắc phục sự cố xây dựng#

Phần này liệt kê một số vấn đề phổ biến có thể phát sinh trong quá trình tổng hợp Python, với các giải pháp được đề xuất.

Tránh tái tạo các tệp được tạo tự động#

Trong một số trường hợp, bạn có thể gặp lỗi Python trong các tập lệnh như

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
01 hoặc
# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
02 trong khi chạy
$ cd cpython
$ git remote add upstream :python/cpython.git
3. Python tự động tạo một số mã của riêng mình và xây dựng đầy đủ từ đầu cần để chạy các tập lệnh tự động tạo. Tuy nhiên, điều này làm cho bản dựng Python yêu cầu một trình thông dịch Python đã được cài đặt; Điều này cũng có thể gây ra sự không phù hợp phiên bản khi cố gắng xây dựng một con trăn cũ (2.x) với một python mới (3.x) được cài đặt hoặc ngược lại.

Để khắc phục vấn đề này, các tệp được tạo tự động cũng được kiểm tra vào kho Git. Vì vậy, nếu bạn không chạm vào các tập lệnh tự động tạo ra, thì không có nhu cầu thực sự nào để tự động tạo ra bất cứ điều gì.

Biên tập viên và công cụ#

Python được sử dụng đủ rộng để thực tế tất cả các trình chỉnh sửa mã có một số hình thức hỗ trợ để viết mã Python. Các công cụ mã hóa khác nhau cũng bao gồm hỗ trợ Python.

Đối với các biên tập viên và công cụ mà các nhà phát triển cốt lõi đã cảm thấy một số nhận xét đặc biệt là cần thiết để mã hóa trong Python, hãy xem các tài nguyên bổ sung.Additional Resources.

Cấu trúc thư mục#

Có một số thư mục cấp cao nhất trong cây nguồn Cpython. Biết những gì mỗi người có nghĩa là để giữ sẽ giúp bạn tìm thấy nơi một phần chức năng nhất định được thực hiện. Mặc dù vậy, luôn luôn có những ngoại lệ cho mọi quy tắc.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
04

Các tài liệu chính thức. Đây là những gì https://docs.python.org/ sử dụng. Xem thêm Xây dựng tài liệu.Building the documentation.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
05

Chứa tệp ngữ pháp EBNF cho Python.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
06

Chứa tất cả các tệp tiêu đề toàn phiên dịch.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
07

Một phần của thư viện tiêu chuẩn được thực hiện trong Python thuần túy.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
08

Mã dành riêng cho MAC (ví dụ: sử dụng IDLE làm ứng dụng OS X).

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
09

Những thứ không thuộc về nơi khác. Thông thường đây là các loại tài liệu dành riêng cho nhà phát triển.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
10

Phần của thư viện tiêu chuẩn (cộng với một số mã khác) được triển khai trong C.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
11

Mã cho tất cả các loại tích hợp.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
12

Mã cụ thể của Windows.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
13

Xây dựng các tệp cho phiên bản MSVC hiện đang được sử dụng cho các trình cài đặt Windows được cung cấp trên python.org.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
14

Mã liên quan đến trình phân tích cú pháp. Định nghĩa của các nút AST cũng được giữ ở đây.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
15

Mã nguồn cho C Executables, bao gồm chức năng chính cho trình thông dịch CPYThon (trong các phiên bản trước Python 3.5, các tệp này nằm trong thư mục mô -đun).

$ cd cpython
$ git remote add upstream :python/cpython.git
6

Mã tạo nên thời gian chạy Cpython cốt lõi. Điều này bao gồm trình biên dịch, vòng lặp EVAL và các mô-đun tích hợp khác nhau.

# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
17

Các công cụ khác nhau (hoặc đã được) được sử dụng để duy trì Python.