Hướng dẫn python distutils - trăn distutils

Tác giả

Greg Ward

Show

Ghi chú

Toàn bộ gói

python setup.py build --build-base=/path/to/pybuild/foo-1.0
3 đã được không dùng nữa và sẽ bị xóa trong Python 3.12. Tài liệu này chỉ được giữ lại làm tài liệu tham khảo và sẽ được xóa với gói. Xem những gì mà mục nhập mới để biết thêm thông tin.What’s New entry for more information.

Xem thêm

Cài đặt các mô -đun Python

Tài liệu cài đặt mô -đun cập nhật. Để sử dụng Python thường xuyên, bạn gần như chắc chắn muốn tài liệu đó hơn là cái này.

Ghi chú

Hướng dẫn này chỉ bao gồm các công cụ cơ bản để xây dựng và phân phối các tiện ích mở rộng được cung cấp như một phần của phiên bản Python này. Các công cụ của bên thứ ba cung cấp dễ dàng hơn để sử dụng và các lựa chọn thay thế an toàn hơn. Tham khảo phần Khuyến nghị nhanh trong Hướng dẫn sử dụng bao bì Python để biết thêm thông tin.

Giới thiệu¶

Trong Python 2.0, API

python setup.py build --build-base=/path/to/pybuild/foo-1.0
3 lần đầu tiên được thêm vào thư viện tiêu chuẩn. Điều này đã cung cấp cho người bảo trì Linux một cách tiêu chuẩn để chuyển đổi các dự án Python thành các gói phân phối Linux và quản trị viên hệ thống một cách tiêu chuẩn để cài đặt chúng trực tiếp lên các hệ thống đích.

Trong nhiều năm kể từ khi Python 2.0 được phát hành, việc kết hợp chặt chẽ hệ thống xây dựng và trình cài đặt gói với chu kỳ phát hành thời gian chạy ngôn ngữ đã trở nên có vấn đề và hiện tại nên sử dụng trình cài đặt gói

python setup.py build --build-base=/path/to/pybuild/foo-1.0
5 và hệ thống xây dựng
python setup.py build --build-base=/path/to/pybuild/foo-1.0
6, thay vào đó hơn là sử dụng
python setup.py build --build-base=/path/to/pybuild/foo-1.0
3 trực tiếp.

Xem Cài đặt các mô -đun Python và phân phối các mô -đun Python để biết thêm chi tiết.Installing Python Modules and Distributing Python Modules for more details.

Tài liệu di sản này chỉ được giữ lại cho đến khi chúng tôi tự tin rằng tài liệu

python setup.py build --build-base=/path/to/pybuild/foo-1.0
6 bao gồm mọi thứ cần thiết.

Phân phối nguồn dựa trên Distutils

Nếu bạn tải xuống một phân phối nguồn mô -đun, bạn có thể nói khá nhanh nếu nó được đóng gói và phân phối theo cách tiêu chuẩn, tức là sử dụng Distutils. Đầu tiên, tên phân phối và số phiên bản sẽ được giới thiệu nổi bật dưới tên của kho lưu trữ đã tải xuống, ví dụ:

python setup.py build --build-base=/path/to/pybuild/foo-1.0
9 hoặc
--- build/ --- lib/
or
--- build/ --- lib./
               temp./
0. Tiếp theo, kho lưu trữ sẽ giải nén vào một thư mục có tên tương tự:
--- build/ --- lib/
or
--- build/ --- lib./
               temp./
1 hoặc
--- build/ --- lib/
or
--- build/ --- lib./
               temp./
2. Ngoài ra, phân phối sẽ chứa tập lệnh thiết lập
--- build/ --- lib/
or
--- build/ --- lib./
               temp./
3 và một tệp có tên
--- build/ --- lib/
or
--- build/ --- lib./
               temp./
4 hoặc có thể chỉ
--- build/ --- lib/
or
--- build/ --- lib./
               temp./
5, điều này sẽ giải thích rằng việc xây dựng và cài đặt phân phối mô -đun là một vấn đề đơn giản là chạy một lệnh từ thiết bị đầu cuối:

Đối với Windows, lệnh này sẽ được chạy từ cửa sổ nhắc lệnh ():

Nếu tất cả những điều này là đúng, thì bạn đã biết cách xây dựng và cài đặt các mô -đun mà bạn vừa tải xuống: chạy lệnh ở trên. Trừ khi bạn cần cài đặt mọi thứ theo cách không chuẩn hoặc tùy chỉnh quy trình xây dựng, bạn không thực sự cần hướng dẫn này. Hay đúng hơn, lệnh trên là tất cả mọi thứ bạn cần để thoát khỏi hướng dẫn này.

Xây dựng và cài đặt tiêu chuẩn

Như được mô tả trong phần Phân phối nguồn dựa trên DisTUTILS, xây dựng và cài đặt phân phối mô -đun bằng cách sử dụng DisTUtils thường là một lệnh đơn giản để chạy từ thiết bị đầu cuối:Distutils based source distributions, building and installing a module distribution using the Distutils is usually one simple command to run from a terminal:

Biến thể nền tảng

Bạn phải luôn luôn chạy lệnh thiết lập từ thư mục gốc phân phối, tức là thư mục con cấp cao nhất mà phân phối nguồn mô-đun giải nén vào. Ví dụ: nếu bạn vừa tải xuống phân phối nguồn mô -đun

python setup.py build --build-base=/path/to/pybuild/foo-1.0
9 vào hệ thống Unix, thì điều bình thường cần làm là:

gunzip -c foo-1.0.tar.gz | tar xf -    # unpacks into directory foo-1.0
cd foo-1.0
python setup.py install

Trên Windows, bạn có thể tải xuống

--- build/ --- lib/
or
--- build/ --- lib./
               temp./
7. Nếu bạn đã tải tệp lưu trữ xuống
--- build/ --- lib/
or
--- build/ --- lib./
               temp./
8, thì nó sẽ giải nén vào
--- build/ --- lib/
or
--- build/ --- lib./
               temp./
9; Bạn có thể sử dụng Trình điều khiển lưu trữ với giao diện người dùng đồ họa (như Winzip) hoặc công cụ dòng lệnh (như Unzip hoặc Pkunzip) để giải nén kho lưu trữ. Sau đó, mở cửa sổ nhắc lệnh và chạy:unzip or pkunzip) to unpack the archive. Then, open a command prompt window and run:

cd c:\Temp\foo-1.0
python setup.py install

Chia công việc lên

Chạy các bản dựng

Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
0 và cài đặt tất cả các mô -đun trong một lần chạy. Nếu bạn thích làm việc tăng dần, đặc biệt là hữu ích nếu bạn muốn tùy chỉnh quy trình xây dựng hoặc nếu mọi thứ đang sai, bạn có thể sử dụng tập lệnh thiết lập để làm một việc tại một thời điểm. Điều này đặc biệt hữu ích khi việc xây dựng và cài đặt sẽ được thực hiện bởi những người dùng khác nhau, ví dụ, bạn có thể muốn xây dựng một phân phối mô-đun và trao nó cho quản trị viên hệ thống để cài đặt (hoặc tự làm, với các đặc quyền siêu người dùng).

Ví dụ: bạn có thể xây dựng mọi thứ trong một bước và sau đó cài đặt mọi thứ trong bước thứ hai, bằng cách gọi tập lệnh thiết lập hai lần:

python setup.py build
python setup.py install

Nếu bạn làm điều này, bạn sẽ nhận thấy rằng việc chạy lệnh cài đặt trước tiên chạy lệnh build, trong trường hợp này, thông báo nhanh chóng không có gì để làm, vì mọi thứ trong thư mục

Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
1 đều được cập nhật.install command first runs the build command, which—in this case—quickly notices that it has nothing to do, since everything in the
Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
1 directory is up-to-date.

Bạn có thể không cần khả năng này để phá vỡ mọi thứ thường xuyên nếu tất cả những gì bạn làm là cài đặt các mô -đun được tải xuống ngoài mạng, nhưng nó rất tiện dụng cho các nhiệm vụ nâng cao hơn. Nếu bạn nhận được phân phối các mô -đun và tiện ích mở rộng Python của riêng mình, bạn sẽ tự mình chạy rất nhiều lệnh distututils riêng lẻ.

Cách xây dựng hoạt động lor

Theo ngụ ý ở trên, lệnh build có trách nhiệm đặt các tệp để cài đặt vào thư mục xây dựng. Theo mặc định, đây là

Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
1 dưới gốc phân phối; Nếu bạn quá quan tâm đến tốc độ hoặc muốn giữ nguyên nguyên nguồn, bạn có thể thay đổi thư mục xây dựng với tùy chọn
Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
3. Ví dụ:build command is responsible for putting the files to install into a build directory. By default, this is
Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
1 under the distribution root; if you’re excessively concerned with speed, or want to keep the source tree pristine, you can change the build directory with the
Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
3 option. For example:

python setup.py build --build-base=/path/to/pybuild/foo-1.0

.Distutils Configuration Files.) Normally, this isn’t necessary.

Bố cục mặc định cho cây xây dựng như sau:

--- build/ --- lib/
or
--- build/ --- lib./
               temp./

Trong đó

Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
4 mở rộng sang một mô tả ngắn gọn về nền tảng HĐH/Phần cứng hiện tại và phiên bản Python. Mẫu đầu tiên, chỉ với một thư mục
Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
5, được sử dụng cho các bản phân phối mô -đun thuần túy của Hồi giáo, đó là các phân phối mô -đun chỉ bao gồm các mô -đun python thuần túy. Nếu một phân phối mô -đun chứa bất kỳ phần mở rộng nào (các mô -đun được viết bằng C/C ++), thì biểu mẫu thứ hai, với hai thư mục
Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
4, được sử dụng. Trong trường hợp đó, thư mục
Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
7 giữ các tệp tạm thời được tạo bởi quy trình biên dịch/liên kết mà don lồng thực sự được cài đặt. Trong cả hai trường hợp, thư mục
Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
5 (hoặc
Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'
9) chứa tất cả các mô -đun Python (Python và phần mở rộng thuần túy) sẽ được cài đặt.

Trong tương lai, nhiều thư mục sẽ được thêm vào để xử lý các tập lệnh Python, tài liệu, thực thi nhị phân và bất cứ điều gì khác là cần thiết để xử lý công việc cài đặt các mô -đun và ứng dụng Python.

Cách cài đặt hoạt động lor

Sau khi lệnh build chạy (cho dù bạn chạy nó một cách rõ ràng hay lệnh cài đặt thực hiện nó cho bạn), công việc của lệnh cài đặt tương đối đơn giản: tất cả những gì nó phải làm là sao chép mọi thứ theo

python setup.py install --user
0 (hoặc
python setup.py install --user
1) để cài đặt đã chọn của bạn danh mục.build command runs (whether you run it explicitly, or the install command does it for you), the work of the install command is relatively simple: all it has to do is copy everything under
python setup.py install --user
0 (or
python setup.py install --user
1) to your chosen installation directory.

Nếu bạn không chọn một thư mục cài đặt, tức là, nếu bạn chỉ chạy ____ ____ 62, thì lệnh cài đặt cài đặt vào vị trí tiêu chuẩn cho các mô-đun Python của bên thứ ba. Vị trí này thay đổi theo nền tảng và cách bạn xây dựng/cài đặt chính Python. Trên Unix (và MacOS, cũng dựa trên UNIX), nó cũng phụ thuộc vào việc phân phối mô-đun được cài đặt có phải là Python tinh khiết hay chứa các tiện ích mở rộng (không phải là PURE hay không):install command installs to the standard location for third-party Python modules. This location varies by platform and by how you built/installed Python itself. On Unix (and macOS, which is also Unix-based), it also depends on whether the module distribution being installed is pure Python or contains extensions (“non-pure”):

Nền tảng

Vị trí cài đặt tiêu chuẩn

Giá trị mặc định

Ghi chú

UNIX (tinh khiết)

python setup.py install --user
3

python setup.py install --user
4

(1)

UNIX (không pure)

python setup.py install --user
5

python setup.py install --user
4

(1)

các cửa sổ

python setup.py install --user
7

python setup.py install --user
8

(2)

Notes:

  1. Hầu hết các phân phối Linux bao gồm Python là một phần tiêu chuẩn của hệ thống, do đó

    python setup.py install --user
    
    9 và
    python setup.py install --home=
    
    0 thường là cả
    python setup.py install --home=
    
    1 trên Linux. Nếu bạn tự xây dựng Python trên Linux (hoặc bất kỳ hệ thống giống như UNIX nào), mặc định
    python setup.py install --user
    
    9 và
    python setup.py install --home=
    
    0 là
    python setup.py install --home=
    
    4.

  2. Thư mục cài đặt mặc định trên Windows là

    python setup.py install --home=
    
    5 theo Python 1.6A1, 1.5.2 và trước đó.

python setup.py install --user
9 và
python setup.py install --home=
0 là viết tắt của các thư mục mà Python được cài đặt và nơi nó tìm thấy các thư viện của nó vào thời gian chạy. Chúng luôn giống nhau trong các cửa sổ, và rất thường giống nhau dưới Unix và MacOS. Bạn có thể tìm hiểu những gì cài đặt Python của bạn sử dụng cho
python setup.py install --user
9 và
python setup.py install --home=
0 bằng cách chạy Python ở chế độ tương tác và gõ một vài lệnh đơn giản. Trong Unix, chỉ cần nhập
python setup.py install --home=~
0 tại dấu nhắc Shell. Trong Windows, chọn. Khi trình thông dịch được bắt đầu, bạn nhập mã python tại dấu nhắc. Ví dụ: trên hệ thống Linux của tôi, tôi nhập ba câu lệnh Python được hiển thị bên dưới và nhận đầu ra như được hiển thị, để tìm hiểu
python setup.py install --user
9 và
python setup.py install --home=
0 của tôi:

Python 2.4 (#26, Aug  7 2004, 17:19:02)
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
>>> sys.exec_prefix
'/usr'

Một vài người giữ chỗ khác được sử dụng trong tài liệu này:

python setup.py install --home=~
3 là viết tắt của phiên bản Python, ví dụ
python setup.py install --home=~
4;
python setup.py install --home=~
5 sẽ được thay thế bằng giá trị của
python setup.py install --home=~
6 hoặc chuỗi trống cho các nền tảng mà không xác định cờ ABI;
python setup.py install --home=~
7 sẽ được thay thế bằng tên của phân phối mô -đun được cài đặt. Chấm và viết hoa là quan trọng trong các con đường; Ví dụ: một giá trị sử dụng
python setup.py install --home=~
8 trên UNIX thường sẽ sử dụng
python setup.py install --home=~
9 trên Windows.

Nếu bạn không muốn cài đặt các mô -đun vào vị trí tiêu chuẩn hoặc nếu bạn không có quyền viết ở đó, thì bạn cần đọc về các cài đặt thay thế trong phần cài đặt thay thế. Nếu bạn muốn tùy chỉnh các thư mục cài đặt của mình nhiều hơn, hãy xem phần Cài đặt tùy chỉnh trên cài đặt tùy chỉnh.Alternate Installation. If you want to customize your installation directories more heavily, see section Custom Installation on custom installations.

Cài đặt thay thế

Thông thường, cần thiết hoặc mong muốn cài đặt các mô-đun vào một vị trí khác với vị trí tiêu chuẩn cho các mô-đun Python của bên thứ ba. Ví dụ: trên một hệ thống UNIX, bạn có thể không được phép ghi vào thư mục mô-đun của bên thứ ba tiêu chuẩn. Hoặc bạn có thể muốn thử một mô -đun trước khi biến nó thành một phần tiêu chuẩn của cài đặt Python cục bộ của bạn. Điều này đặc biệt đúng khi nâng cấp phân phối đã có: bạn muốn đảm bảo cơ sở các tập lệnh hiện tại của bạn vẫn hoạt động với phiên bản mới trước khi thực sự nâng cấp.

Lệnh cài đặt Distutils được thiết kế để tạo các phân phối mô -đun cài đặt cho một vị trí thay thế đơn giản và không đau. Ý tưởng cơ bản là bạn cung cấp một thư mục cơ sở để cài đặt và lệnh Cài đặt chọn một bộ thư mục (được gọi là sơ đồ cài đặt) trong thư mục cơ sở này để cài đặt tệp. Các chi tiết khác nhau giữa các nền tảng, vì vậy hãy đọc bất kỳ phần nào sau đây áp dụng cho bạn.install command is designed to make installing module distributions to an alternate location simple and painless. The basic idea is that you supply a base directory for the installation, and the install command picks a set of directories (called an installation scheme) under this base directory in which to install files. The details differ across platforms, so read whichever of the following sections applies to you.

Lưu ý rằng các sơ đồ cài đặt thay thế khác nhau là loại trừ lẫn nhau: bạn có thể vượt qua

/usr/bin/python setup.py install --prefix=/usr/local
0 hoặc
/usr/bin/python setup.py install --prefix=/usr/local
1 hoặc
/usr/bin/python setup.py install --prefix=/usr/local
2 và
/usr/bin/python setup.py install --prefix=/usr/local
3 hoặc
/usr/bin/python setup.py install --prefix=/usr/local
4 và
/usr/bin/python setup.py install --prefix=/usr/local
5, nhưng bạn có thể trộn lẫn từ các nhóm này.

Cài đặt thay thế: Sơ đồ người dùng

Sơ đồ này được thiết kế để trở thành giải pháp thuận tiện nhất cho người dùng không có quyền viết cho thư mục gói trang web toàn cầu hoặc không muốn cài đặt vào đó. Nó được kích hoạt với một tùy chọn đơn giản:

python setup.py install --user

Các tệp sẽ được cài đặt vào các thư mục con của

/usr/bin/python setup.py install --prefix=/usr/local
6 (được viết là
/usr/bin/python setup.py install --prefix=/usr/local
7 sau đây). Sơ đồ này cài đặt các mô -đun Python thuần túy và các mô -đun mở rộng ở cùng một vị trí (còn được gọi là
/usr/bin/python setup.py install --prefix=/usr/local
8). Dưới đây là các giá trị cho Unix, bao gồm cả macOS:

Loại file

Thư mục cài đặt

Mô -đun

/usr/bin/python setup.py install --prefix=/usr/local
9

kịch bản

cd c:\Temp\foo-1.0
python setup.py install
00

dữ liệu

/usr/bin/python setup.py install --prefix=/usr/local
7

C tiêu đề

cd c:\Temp\foo-1.0
python setup.py install
02

Và đây là các giá trị được sử dụng trên Windows:

Loại file

Thư mục cài đặt

Mô -đun

cd c:\Temp\foo-1.0
python setup.py install
03

kịch bản

cd c:\Temp\foo-1.0
python setup.py install
04

dữ liệu

/usr/bin/python setup.py install --prefix=/usr/local
7

C tiêu đề

cd c:\Temp\foo-1.0
python setup.py install
06

Và đây là các giá trị được sử dụng trên Windows:

Ưu điểm của việc sử dụng sơ đồ này so với các kế hoạch khác được mô tả dưới đây là thư mục gói trang web người dùng nằm trong các điều kiện bình thường luôn luôn được bao gồm trong

cd c:\Temp\foo-1.0
python setup.py install
07 (xem
--- build/ --- lib/
or
--- build/ --- lib./
               temp./
3 tập lệnh để hoàn thiện cài đặt.build_ext command also has a
/usr/bin/python setup.py install --prefix=/usr/local
0 option to add
cd c:\Temp\foo-1.0
python setup.py install
11 to the compiler search path for header files and
cd c:\Temp\foo-1.0
python setup.py install
12 to the compiler search path for libraries as well as to the runtime search path for shared C libraries (rpath).

Lệnh build_ext cũng có tùy chọn /usr/bin/python setup.py install --prefix=/usr/local 0 để thêm cd c:\Temp\foo-1.0 python setup.py install 11 vào đường dẫn tìm kiếm trình biên dịch cho các tệp tiêu đề và cd c:\Temp\foo-1.0 python setup.py install 12 vào đường dẫn tìm kiếm trình biên dịch cho các thư viện cũng như đường dẫn tìm kiếm thời gian chạy cho thư viện C được chia sẻ (RPATH).

Cài đặt thay thế: Chương trình gia đình

Ý tưởng đằng sau chương trình nhà của người Viking là bạn xây dựng và duy trì một bản mô -đun Python cá nhân. Kế hoạch này tên có nguồn gốc từ ý tưởng về một thư mục gia đình trên mạng trên UNIX, vì nó không phải là bất thường đối với người dùng Unix để làm cho thư mục nhà của họ có bố cục tương tự như

cd c:\Temp\foo-1.0
python setup.py install
13 hoặc
cd c:\Temp\foo-1.0
python setup.py install
14. Sơ đồ này có thể được sử dụng bởi bất kỳ ai, bất kể hệ điều hành mà họ đang cài đặt.

python setup.py install --home=

Cài đặt phân phối mô -đun mới đơn giản nhưinstall command will expand this to your home directory:

python setup.py install --home=~

nơi bạn có thể cung cấp bất kỳ thư mục nào bạn thích cho tùy chọn

/usr/bin/python setup.py install --prefix=/usr/local
1. Trên Unix, những người đánh máy lười biếng chỉ có thể gõ một tilde (
cd c:\Temp\foo-1.0
python setup.py install
16); Lệnh cài đặt sẽ mở rộng điều này sang thư mục nhà của bạn:modify Python’s search path or edit
cd c:\Temp\foo-1.0
python setup.py install
17 (see
cd c:\Temp\foo-1.0
python setup.py install
08) to call
cd c:\Temp\foo-1.0
python setup.py install
19 or edit
cd c:\Temp\foo-1.0
python setup.py install
07.

Để thực hiện Python, hãy tìm các bản phân phối được cài đặt với sơ đồ này, bạn có thể phải sửa đổi đường dẫn tìm kiếm Python hoặc chỉnh sửa

cd c:\Temp\foo-1.0
python setup.py install
17 (xem
cd c:\Temp\foo-1.0
python setup.py install
08) để gọi
cd c:\Temp\foo-1.0
python setup.py install
19 hoặc chỉnh sửa
cd c:\Temp\foo-1.0
python setup.py install
07.

Loại file

Thư mục cài đặt

Mô -đun

cd c:\Temp\foo-1.0
python setup.py install
22

kịch bản

cd c:\Temp\foo-1.0
python setup.py install
23

dữ liệu

cd c:\Temp\foo-1.0
python setup.py install
24

C tiêu đề

cd c:\Temp\foo-1.0
python setup.py install
25

Và đây là các giá trị được sử dụng trên Windows:

Ưu điểm của việc sử dụng sơ đồ này so với các kế hoạch khác được mô tả dưới đây là thư mục gói trang web người dùng nằm trong các điều kiện bình thường luôn luôn được bao gồm trong cd c:\Temp\foo-1.0 python setup.py install 07 (xem --- build/ --- lib/ or --- build/ --- lib./ temp./ 3 tập lệnh để hoàn thiện cài đặt.

Lệnh build_ext cũng có tùy chọn

/usr/bin/python setup.py install --prefix=/usr/local
0 để thêm
cd c:\Temp\foo-1.0
python setup.py install
11 vào đường dẫn tìm kiếm trình biên dịch cho các tệp tiêu đề và
cd c:\Temp\foo-1.0
python setup.py install
12 vào đường dẫn tìm kiếm trình biên dịch cho các thư viện cũng như đường dẫn tìm kiếm thời gian chạy cho thư viện C được chia sẻ (RPATH).

Cài đặt thay thế: Chương trình gia đình

/usr/bin/python setup.py install --prefix=/usr/local

Ý tưởng đằng sau chương trình nhà của người Viking là bạn xây dựng và duy trì một bản mô -đun Python cá nhân. Kế hoạch này tên có nguồn gốc từ ý tưởng về một thư mục gia đình trên mạng trên UNIX, vì nó không phải là bất thường đối với người dùng Unix để làm cho thư mục nhà của họ có bố cục tương tự như

cd c:\Temp\foo-1.0
python setup.py install
13 hoặc
cd c:\Temp\foo-1.0
python setup.py install
14. Sơ đồ này có thể được sử dụng bởi bất kỳ ai, bất kể hệ điều hành mà họ đang cài đặt.

cd c:\Temp\foo-1.0
python setup.py install
0

Cài đặt phân phối mô -đun mới đơn giản như

Loại file

Thư mục cài đặt

Mô -đun Python

python setup.py install --user
3

Mô -đun mở rộng

python setup.py install --user
5

kịch bản

cd c:\Temp\foo-1.0
python setup.py install
39

dữ liệu

python setup.py install --user
9

C tiêu đề

cd c:\Temp\foo-1.0
python setup.py install
41

Không có yêu cầu rằng

/usr/bin/python setup.py install --prefix=/usr/local
2 hoặc
/usr/bin/python setup.py install --prefix=/usr/local
3 thực sự chỉ ra một cài đặt Python thay thế; Nếu các thư mục được liệt kê ở trên chưa tồn tại, chúng được tạo vào thời điểm cài đặt.

Ngẫu nhiên, lý do thực sự của sơ đồ tiền tố rất quan trọng chỉ đơn giản là việc cài đặt UNIX tiêu chuẩn sử dụng sơ đồ tiền tố, nhưng với

/usr/bin/python setup.py install --prefix=/usr/local
2 và
/usr/bin/python setup.py install --prefix=/usr/local
3 do chính Python cung cấp là
cd c:\Temp\foo-1.0
python setup.py install
46 và
cd c:\Temp\foo-1.0
python setup.py install
47. Do đó, bạn có thể nghĩ rằng bạn sẽ không bao giờ sử dụng sơ đồ tiền tố, nhưng mỗi khi bạn chạy
cd c:\Temp\foo-1.0
python setup.py install
48 mà không có bất kỳ tùy chọn nào khác, bạn sẽ sử dụng nó.

Lưu ý rằng việc cài đặt các tiện ích mở rộng vào cài đặt Python thay thế không ảnh hưởng đến cách các tiện ích mở rộng đó được xây dựng: đặc biệt, các tệp tiêu đề Python (

cd c:\Temp\foo-1.0
python setup.py install
49 và bạn bè) được cài đặt với trình thông dịch Python được sử dụng để chạy tập lệnh thiết lập sẽ được sử dụng để biên dịch các phần mở rộng. Bạn có trách nhiệm đảm bảo rằng trình thông dịch được sử dụng để chạy các tiện ích mở rộng được cài đặt theo cách này là tương thích với trình thông dịch được sử dụng để xây dựng chúng. Cách tốt nhất để làm điều này là đảm bảo rằng hai phiên dịch là cùng một phiên bản Python (có thể là các bản dựng khác nhau hoặc có thể các bản sao của cùng một bản dựng). .

Cài đặt thay thế: Windows (sơ đồ tiền tố) ¶

Windows không có khái niệm về thư mục nhà của người dùng và vì việc cài đặt Python tiêu chuẩn trong Windows đơn giản hơn so với Unix, tùy chọn

/usr/bin/python setup.py install --prefix=/usr/local
2 theo truyền thống đã được sử dụng để cài đặt các gói bổ sung ở các vị trí riêng biệt trên Windows.

cd c:\Temp\foo-1.0
python setup.py install
1

Để cài đặt các mô -đun vào thư mục

cd c:\Temp\foo-1.0
python setup.py install
53 trên ổ đĩa hiện tại.

Cơ sở cài đặt được xác định bởi tùy chọn

/usr/bin/python setup.py install --prefix=/usr/local
2; Tùy chọn
/usr/bin/python setup.py install --prefix=/usr/local
3 không được hỗ trợ trong Windows, điều đó có nghĩa là các mô -đun Python thuần túy và các mô -đun mở rộng được cài đặt vào cùng một vị trí. Các tệp được cài đặt như sau:

Loại file

Thư mục cài đặt

Mô -đun Python

python setup.py install --user
7

kịch bản

cd c:\Temp\foo-1.0
python setup.py install
57

dữ liệu

python setup.py install --user
9

C tiêu đề

cd c:\Temp\foo-1.0
python setup.py install
59

Không có yêu cầu rằng /usr/bin/python setup.py install --prefix=/usr/local 2 hoặc /usr/bin/python setup.py install --prefix=/usr/local 3 thực sự chỉ ra một cài đặt Python thay thế; Nếu các thư mục được liệt kê ở trên chưa tồn tại, chúng được tạo vào thời điểm cài đặt.

Ngẫu nhiên, lý do thực sự của sơ đồ tiền tố rất quan trọng chỉ đơn giản là việc cài đặt UNIX tiêu chuẩn sử dụng sơ đồ tiền tố, nhưng với

/usr/bin/python setup.py install --prefix=/usr/local
2 và
/usr/bin/python setup.py install --prefix=/usr/local
3 do chính Python cung cấp là
cd c:\Temp\foo-1.0
python setup.py install
46 và
cd c:\Temp\foo-1.0
python setup.py install
47. Do đó, bạn có thể nghĩ rằng bạn sẽ không bao giờ sử dụng sơ đồ tiền tố, nhưng mỗi khi bạn chạy
cd c:\Temp\foo-1.0
python setup.py install
48 mà không có bất kỳ tùy chọn nào khác, bạn sẽ sử dụng nó.Alternate Installation just don’t do what you want. You might want to tweak just one or two directories while keeping everything under the same base directory, or you might want to completely redefine the installation scheme. In either case, you’re creating a custom installation scheme.

Lưu ý rằng việc cài đặt các tiện ích mở rộng vào cài đặt Python thay thế không ảnh hưởng đến cách các tiện ích mở rộng đó được xây dựng: đặc biệt, các tệp tiêu đề Python (

cd c:\Temp\foo-1.0
python setup.py install
49 và bạn bè) được cài đặt với trình thông dịch Python được sử dụng để chạy tập lệnh thiết lập sẽ được sử dụng để biên dịch các phần mở rộng. Bạn có trách nhiệm đảm bảo rằng trình thông dịch được sử dụng để chạy các tiện ích mở rộng được cài đặt theo cách này là tương thích với trình thông dịch được sử dụng để xây dựng chúng. Cách tốt nhất để làm điều này là đảm bảo rằng hai phiên dịch là cùng một phiên bản Python (có thể là các bản dựng khác nhau hoặc có thể các bản sao của cùng một bản dựng). .

Loại file

Cài đặt thay thế: Windows (sơ đồ tiền tố) ¶

Mô -đun Python

cd c:\Temp\foo-1.0
python setup.py install
60

Mô -đun mở rộng

cd c:\Temp\foo-1.0
python setup.py install
61

kịch bản

cd c:\Temp\foo-1.0
python setup.py install
62

kịch bản

cd c:\Temp\foo-1.0
python setup.py install
63

dữ liệu

cd c:\Temp\foo-1.0
python setup.py install
64

C tiêu đề

cd c:\Temp\foo-1.0
python setup.py install
65

Không có yêu cầu rằng

/usr/bin/python setup.py install --prefix=/usr/local
2 hoặc
/usr/bin/python setup.py install --prefix=/usr/local
3 thực sự chỉ ra một cài đặt Python thay thế; Nếu các thư mục được liệt kê ở trên chưa tồn tại, chúng được tạo vào thời điểm cài đặt.

Ngẫu nhiên, lý do thực sự của sơ đồ tiền tố rất quan trọng chỉ đơn giản là việc cài đặt UNIX tiêu chuẩn sử dụng sơ đồ tiền tố, nhưng với

/usr/bin/python setup.py install --prefix=/usr/local
2 và
/usr/bin/python setup.py install --prefix=/usr/local
3 do chính Python cung cấp là
cd c:\Temp\foo-1.0
python setup.py install
46 và
cd c:\Temp\foo-1.0
python setup.py install
47. Do đó, bạn có thể nghĩ rằng bạn sẽ không bao giờ sử dụng sơ đồ tiền tố, nhưng mỗi khi bạn chạy
cd c:\Temp\foo-1.0
python setup.py install
48 mà không có bất kỳ tùy chọn nào khác, bạn sẽ sử dụng nó.

cd c:\Temp\foo-1.0
python setup.py install
2

Lưu ý rằng việc cài đặt các tiện ích mở rộng vào cài đặt Python thay thế không ảnh hưởng đến cách các tiện ích mở rộng đó được xây dựng: đặc biệt, các tệp tiêu đề Python (

cd c:\Temp\foo-1.0
python setup.py install
49 và bạn bè) được cài đặt với trình thông dịch Python được sử dụng để chạy tập lệnh thiết lập sẽ được sử dụng để biên dịch các phần mở rộng. Bạn có trách nhiệm đảm bảo rằng trình thông dịch được sử dụng để chạy các tiện ích mở rộng được cài đặt theo cách này là tương thích với trình thông dịch được sử dụng để xây dựng chúng. Cách tốt nhất để làm điều này là đảm bảo rằng hai phiên dịch là cùng một phiên bản Python (có thể là các bản dựng khác nhau hoặc có thể các bản sao của cùng một bản dựng). .

cd c:\Temp\foo-1.0
python setup.py install
3

Cài đặt thay thế: Windows (sơ đồ tiền tố) ¶

Windows không có khái niệm về thư mục nhà của người dùng và vì việc cài đặt Python tiêu chuẩn trong Windows đơn giản hơn so với Unix, tùy chọn

/usr/bin/python setup.py install --prefix=/usr/local
2 theo truyền thống đã được sử dụng để cài đặt các gói bổ sung ở các vị trí riêng biệt trên Windows.

cd c:\Temp\foo-1.0
python setup.py install
4

Thư mục cài đặt được chỉ định liên quan đến

python setup.py install --user
9. Tất nhiên, bạn cũng phải đảm bảo rằng thư mục này nằm trong đường dẫn tìm kiếm mô -đun Python, chẳng hạn như bằng cách đặt tệp
cd c:\Temp\foo-1.0
python setup.py install
82 trong thư mục trang web (xem
cd c:\Temp\foo-1.0
python setup.py install
08). Xem phần Sửa đổi đường dẫn tìm kiếm Python sườn để tìm hiểu cách sửa đổi đường dẫn tìm kiếm Python.Modifying Python’s Search Path to find out how to modify Python’s search path.

Nếu bạn muốn xác định toàn bộ sơ đồ cài đặt, bạn chỉ cần cung cấp tất cả các tùy chọn thư mục cài đặt. Cách khuyến nghị để làm điều này là cung cấp các đường dẫn tương đối; Ví dụ: nếu bạn muốn duy trì tất cả các tệp liên quan đến mô-đun Python trong

python setup.py install --home=~
0 trong thư mục nhà của bạn và bạn muốn có một thư mục riêng cho mỗi nền tảng mà bạn sử dụng thư mục nhà của mình, bạn có thể xác định sơ đồ cài đặt sau:

cd c:\Temp\foo-1.0
python setup.py install
5

hoặc, tương đương,

cd c:\Temp\foo-1.0
python setup.py install
6

cd c:\Temp\foo-1.0
python setup.py install
85 không phải là (nhất thiết) một biến môi trường.

Rõ ràng, việc chỉ định toàn bộ sơ đồ cài đặt mỗi khi bạn cài đặt phân phối mô -đun mới sẽ rất tẻ nhạt. Do đó, bạn có thể đặt các tùy chọn này vào tệp cấu hình Distutils của mình (xem phần Tệp cấu hình DisTUtils):Distutils Configuration Files):

cd c:\Temp\foo-1.0
python setup.py install
7

hoặc, tương đương,

cd c:\Temp\foo-1.0
python setup.py install
8

cd c:\Temp\foo-1.0
python setup.py install
85 không phải là (nhất thiết) một biến môi trường.

cd c:\Temp\foo-1.0
python setup.py install
9

Rõ ràng, việc chỉ định toàn bộ sơ đồ cài đặt mỗi khi bạn cài đặt phân phối mô -đun mới sẽ rất tẻ nhạt. Do đó, bạn có thể đặt các tùy chọn này vào tệp cấu hình Distutils của mình (xem phần Tệp cấu hình DisTUtils):

Lưu ý rằng hai cái này không tương đương nếu bạn cung cấp một thư mục cơ sở cài đặt khác khi bạn chạy tập lệnh thiết lập. Ví dụ,Distutils Configuration Files for details.

sẽ cài đặt các mô -đun thuần túy lên

cd c:\Temp\foo-1.0
python setup.py install
86 trong trường hợp đầu tiên và
cd c:\Temp\foo-1.0
python setup.py install
87 trong trường hợp thứ hai. (Đối với trường hợp thứ hai, bạn có thể muốn cung cấp một cơ sở cài đặt là
cd c:\Temp\foo-1.0
python setup.py install
88.)

Bạn có thể nhận thấy việc sử dụng

cd c:\Temp\foo-1.0
python setup.py install
89 và
cd c:\Temp\foo-1.0
python setup.py install
85 trong đầu vào tệp cấu hình mẫu. Đây là các biến cấu hình Distutils, có sự tương đồng mạnh mẽ với các biến môi trường. Trên thực tế, bạn có thể sử dụng các biến môi trường trong các tệp cấu hình trên các nền tảng có khái niệm như vậy nhưng DisTutils cũng xác định thêm một vài biến có thể không có trong môi trường của bạn, chẳng hạn như
cd c:\Temp\foo-1.0
python setup.py install
85. .virtual environment is activated, any options that change the installation path will be ignored from all distutils configuration files to prevent inadvertently installing projects outside of the virtual environment.

Ghi chú

Khi một môi trường ảo được kích hoạt, mọi tùy chọn thay đổi đường dẫn cài đặt sẽ bị bỏ qua từ tất cả các tệp cấu hình Distutils để ngăn chặn cài đặt các dự án bên ngoài môi trường ảo.

python setup.py build
python setup.py install
0

Sửa đổi đường dẫn tìm kiếm Python từ

Khi trình thông dịch Python thực thi câu lệnh

cd c:\Temp\foo-1.0
python setup.py install
92, nó sẽ tìm kiếm cả mã Python và các mô -đun mở rộng dọc theo đường dẫn tìm kiếm. Một giá trị mặc định cho đường dẫn được cấu hình vào nhị phân Python khi trình thông dịch được xây dựng. Bạn có thể xác định đường dẫn bằng cách nhập mô -đun
cd c:\Temp\foo-1.0
python setup.py install
93 và in giá trị của
cd c:\Temp\foo-1.0
python setup.py install
07.

Chuỗi null trong

cd c:\Temp\foo-1.0
python setup.py install
07 đại diện cho thư mục làm việc hiện tại.

Công ước dự kiến ​​cho các gói được cài đặt cục bộ là đưa chúng vào thư mục

cd c:\Temp\foo-1.0
python setup.py install
96, nhưng bạn có thể muốn cài đặt các mô -đun Python vào một số thư mục tùy ý. Ví dụ: trang web của bạn có thể có quy ước giữ tất cả các phần mềm liên quan đến máy chủ web theo
cd c:\Temp\foo-1.0
python setup.py install
97. Các mô-đun Python bổ sung sau đó có thể thuộc về
cd c:\Temp\foo-1.0
python setup.py install
98 và để nhập chúng, thư mục này phải được thêm vào
cd c:\Temp\foo-1.0
python setup.py install
07. Có một số cách khác nhau để thêm thư mục.

Cách thuận tiện nhất là thêm một tệp cấu hình đường dẫn vào một thư mục mà trên đường dẫn của Python, thường là vào thư mục

python setup.py build
python setup.py install
00. Các tệp cấu hình đường dẫn có phần mở rộng
cd c:\Temp\foo-1.0
python setup.py install
82 và mỗi dòng phải chứa một đường dẫn duy nhất được nối với
cd c:\Temp\foo-1.0
python setup.py install
07. .

python setup.py build
python setup.py install
1

Các đường dẫn có thể là tuyệt đối hoặc tương đối, trong trường hợp đó chúng liên quan đến thư mục chứa tệp

cd c:\Temp\foo-1.0
python setup.py install
82. Xem tài liệu của mô -đun
cd c:\Temp\foo-1.0
python setup.py install
08 để biết thêm thông tin.

Có hai biến môi trường có thể sửa đổi

cd c:\Temp\foo-1.0
python setup.py install
07.
python setup.py build
python setup.py install
13 đặt giá trị thay thế cho tiền tố của cài đặt Python. Ví dụ: nếu
python setup.py build
python setup.py install
13 được đặt thành
cd c:\Temp\foo-1.0
python setup.py install
98, đường dẫn tìm kiếm sẽ được đặt thành
python setup.py build
python setup.py install
16.
python setup.py build
python setup.py install
13 sets an alternate value for the prefix of the Python installation. For example, if
python setup.py build
python setup.py install
13 is set to
cd c:\Temp\foo-1.0
python setup.py install
98, the search path will be set to
python setup.py build
python setup.py install
16.

Biến

python setup.py build
python setup.py install
17 có thể được đặt thành danh sách các đường dẫn sẽ được thêm vào đầu
cd c:\Temp\foo-1.0
python setup.py install
07. Ví dụ: nếu
python setup.py build
python setup.py install
17 được đặt thành
python setup.py build
python setup.py install
20, đường dẫn tìm kiếm sẽ bắt đầu bằng
python setup.py build
python setup.py install
21. .
python setup.py build
python setup.py install
17 variable can be set to a list of paths that will be added to the beginning of
cd c:\Temp\foo-1.0
python setup.py install
07. For example, if
python setup.py build
python setup.py install
17 is set to
python setup.py build
python setup.py install
20, the search path will begin with
python setup.py build
python setup.py install
21. (Note that directories must exist in order to be added to
cd c:\Temp\foo-1.0
python setup.py install
07; the
cd c:\Temp\foo-1.0
python setup.py install
08 module removes paths that don’t exist.)

Cuối cùng,

cd c:\Temp\foo-1.0
python setup.py install
07 chỉ là một danh sách Python thông thường, do đó, bất kỳ ứng dụng Python nào cũng có thể sửa đổi nó bằng cách thêm hoặc xóa các mục.

Các tệp cấu hình Distutils

Như đã đề cập ở trên, bạn có thể sử dụng các tệp cấu hình Distutils để ghi lại tùy chọn cá nhân hoặc trang web cho bất kỳ tùy chọn Distutils nào. Đó là, bất kỳ tùy chọn nào cho bất kỳ lệnh nào cũng có thể được lưu trữ trong một trong hai hoặc ba (tùy thuộc vào nền tảng của bạn) các tệp cấu hình, sẽ được tư vấn trước khi dòng lệnh được phân tích cú pháp. Điều này có nghĩa là các tệp cấu hình sẽ ghi đè các giá trị mặc định và dòng lệnh sẽ lần lượt ghi đè các tệp cấu hình. Hơn nữa, nếu áp dụng nhiều tệp cấu hình, các giá trị từ các tệp trước đó đã bị ghi đè bởi các tệp sau này.

Vị trí và tên của các tệp cấu hình

Tên và vị trí của các tệp cấu hình thay đổi một chút trên các nền tảng. Trên Unix và MacOS, ba tệp cấu hình (theo thứ tự chúng được xử lý) là:

Loại file

Vị trí và tên tệp

Ghi chú

hệ thống

python setup.py build
python setup.py install
25

(1)

riêng tư

python setup.py build
python setup.py install
26

(2)

địa phương

python setup.py build
python setup.py install
27

(3)

Và trên Windows, các tệp cấu hình là:

Loại file

Vị trí và tên tệp

Ghi chú

hệ thống

python setup.py build
python setup.py install
28

(4)

riêng tư

python setup.py build
python setup.py install
29

(5)

địa phương

python setup.py build
python setup.py install
27

(3)

Và trên Windows, các tệp cấu hình là:

Notes:

  1. Trên tất cả các nền tảng, tệp cá nhân của người Viking có thể bị vô hiệu hóa tạm thời bằng cách chuyển tùy chọn của người dùng không phải là người dùng.

  2. Nói đúng ra, tệp cấu hình toàn hệ thống sống trong thư mục nơi cài đặt distutils; Theo Python 1.6 và sau đó trên Unix, điều này được hiển thị. Đối với Python 1.5.2, các phương pháp distutils thường sẽ được cài đặt thành

    python setup.py build
    python setup.py install
    
    31, do đó, tệp cấu hình hệ thống phải được đặt ở đó theo Python 1.5.2.
    python setup.py build
    python setup.py install
    
    32 environment variable is not defined, the user’s home directory will be determined with the
    python setup.py build
    python setup.py install
    
    33 function from the standard
    python setup.py build
    python setup.py install
    
    34 module. This is done by the
    python setup.py build
    python setup.py install
    
    35 function used by Distutils.

  3. Trên Unix, nếu biến môi trường

    python setup.py build
    python setup.py install
    
    32 không được xác định, thư mục nhà của người dùng sẽ được xác định với hàm
    python setup.py build
    python setup.py install
    
    33 từ mô -đun
    python setup.py build
    python setup.py install
    
    34 tiêu chuẩn. Điều này được thực hiện bởi chức năng
    python setup.py build
    python setup.py install
    
    35 được sử dụng bởi distutils.

  4. Tức là, trong thư mục hiện tại (thường là vị trí của tập lệnh thiết lập).

  5. . Theo Python 1.5.2, tiền tố mặc định là

    python setup.py build
    python setup.py install
    
    38 và DisTutils không phải là một phần của thư viện tiêu chuẩn, vì vậy tệp cấu hình hệ thống sẽ là
    python setup.py build
    python setup.py install
    
    39 trong cài đặt Python 1.5.2 tiêu chuẩn trong Windows.
    python setup.py build
    python setup.py install
    
    32 environment variable is not defined,
    python setup.py build
    python setup.py install
    
    41 then
    python setup.py build
    python setup.py install
    
    42 and
    python setup.py build
    python setup.py install
    
    43 will be tried. This is done by the
    python setup.py build
    python setup.py install
    
    35 function used by Distutils.

Trên Windows, nếu biến môi trường python setup.py build python setup.py install 32 không được xác định, python setup.py build python setup.py install 41 thì python setup.py build python setup.py install 42 và python setup.py build python setup.py install 43 sẽ được thử. Điều này được thực hiện bởi chức năng python setup.py build python setup.py install 35 được sử dụng bởi distutils.

Cú pháp của các tệp cấu hình

Các tệp cấu hình Distutils đều có cùng cú pháp. Các tệp cấu hình được nhóm thành các phần. Có một phần cho mỗi lệnh distutils, cộng với phần

python setup.py build
python setup.py install
45 cho các tùy chọn toàn cầu ảnh hưởng đến mọi lệnh. Mỗi phần bao gồm một tùy chọn trên mỗi dòng, được chỉ định là
python setup.py build
python setup.py install
46.

Ví dụ: sau đây là một tệp cấu hình hoàn chỉnh chỉ buộc tất cả các lệnh phải chạy lặng lẽ theo mặc định:

Nếu điều này được cài đặt dưới dạng tệp cấu hình hệ thống, nó sẽ ảnh hưởng đến tất cả việc xử lý bất kỳ phân phối mô -đun Python nào của bất kỳ người dùng nào trên hệ thống hiện tại. Nếu nó được cài đặt dưới dạng tệp cấu hình cá nhân của bạn (trên các hệ thống hỗ trợ chúng), nó sẽ chỉ ảnh hưởng đến phân phối mô -đun do bạn xử lý. Và nếu nó được sử dụng làm

python setup.py build
python setup.py install
27 cho một phân phối mô -đun cụ thể, nó chỉ ảnh hưởng đến phân phối đó.build* commands always forcibly rebuild all files with the following:

python setup.py build
python setup.py install
2

Bạn có thể ghi đè thư mục mặc định của Build Build Base và thực hiện các lệnh Build* luôn buộc phải xây dựng lại tất cả các tệp sau:

python setup.py build
python setup.py install
3

tương ứng với các đối số dòng lệnhbuild command on the command-line means that command will be run. Including a particular command in config files has no such implication; it only means that if the command is run, the options in the config file will apply. (Or if other commands that derive values from it are run, they will use the values in the config file.)

Ngoại trừ bao gồm cả lệnh xây dựng trên dòng lệnh có nghĩa là lệnh đó sẽ được chạy. Bao gồm một lệnh cụ thể trong các tệp cấu hình không có hàm ý như vậy; Điều đó chỉ có nghĩa là nếu lệnh được chạy, các tùy chọn trong tệp cấu hình sẽ được áp dụng. (Hoặc nếu các lệnh khác lấy giá trị từ nó được chạy, chúng sẽ sử dụng các giá trị trong tệp cấu hình.)

python setup.py build
python setup.py install
4

Và bạn có thể tìm ra danh sách đầy đủ các tùy chọn toàn cầu bằng cách sử dụng

python setup.py build
python setup.py install
48 mà không cần lệnh:

Xem thêm phần Tài liệu tham khảo của người Viking trong hướng dẫn sử dụng các mô -đun Python phân phối của Python.

Xây dựng phần mở rộng: Mẹo và Thủ thuật

Bất cứ khi nào có thể, các distutils cố gắng sử dụng thông tin cấu hình được cung cấp bởi trình thông dịch Python được sử dụng để chạy tập lệnh

--- build/ --- lib/
or
--- build/ --- lib./
               temp./
3. Ví dụ, cùng một trình biên dịch và cờ liên kết được sử dụng để biên dịch Python cũng sẽ được sử dụng để biên dịch các tiện ích mở rộng. Thông thường điều này sẽ hoạt động tốt, nhưng trong các tình huống phức tạp, điều này có thể không phù hợp. Phần này thảo luận về cách ghi đè hành vi phân tích thông thường.

Điều chỉnh cờ trình biên dịch/liên kết

Biên dịch một phần mở rộng Python được viết bằng C hoặc C ++ đôi khi sẽ yêu cầu chỉ định các cờ tùy chỉnh cho trình biên dịch và trình liên kết để sử dụng một thư viện cụ thể hoặc tạo ra một loại mã đối tượng đặc biệt. Điều này đặc biệt đúng nếu tiện ích mở rộng đã được thử nghiệm trên nền tảng của bạn hoặc nếu bạn đang cố gắng kết hợp chéo Python.

Trong trường hợp chung nhất, tác giả mở rộng có thể dự đoán rằng việc biên dịch các tiện ích mở rộng sẽ phức tạp và cung cấp một tệp

python setup.py build
python setup.py install
51 để bạn chỉnh sửa. Điều này có thể sẽ chỉ được thực hiện nếu phân phối mô -đun chứa nhiều mô -đun mở rộng riêng biệt hoặc nếu chúng thường yêu cầu các bộ cờ biên dịch phức tạp để hoạt động.

Một tệp

python setup.py build
python setup.py install
51, nếu có, được phân tích cú pháp để có được danh sách các phần mở rộng để xây dựng. Mỗi dòng trong một
python setup.py build
python setup.py install
51 mô tả một mô -đun duy nhất. Các dòng có cấu trúc sau:

python setup.py build
python setup.py install
5

Hãy lần lượt kiểm tra từng lĩnh vực.

  • Mô -đun là tên của mô -đun mở rộng sẽ được xây dựng và phải là định danh Python hợp lệ. Bạn có thể chỉ cần thay đổi điều này để đổi tên một mô -đun (chỉnh sửa thành mã nguồn cũng sẽ cần thiết), vì vậy điều này nên được để lại một mình.

  • SourceFile là bất cứ điều gì mà có khả năng là một tệp mã nguồn, ít nhất là đánh giá bởi tên tệp. Tên tệp kết thúc trong

    python setup.py build
    python setup.py install
    
    54 được giả định được viết bằng C, tên tệp kết thúc bằng
    python setup.py build
    python setup.py install
    
    55,
    python setup.py build
    python setup.py install
    
    56 và
    python setup.py build
    python setup.py install
    
    57 được cho là C ++ và các tên tệp kết thúc trong
    python setup.py build
    python setup.py install
    
    58 hoặc
    python setup.py build
    python setup.py install
    
    59 được giả định là mục tiêu C.

  • CPPARG là một đối số cho bộ tiền xử lý C và là bất cứ điều gì bắt đầu với

    python setup.py build
    python setup.py install
    
    60,
    python setup.py build
    python setup.py install
    
    61,
    python setup.py build
    python setup.py install
    
    62 hoặc
    python setup.py build
    python setup.py install
    
    63.

  • Thư viện là bất cứ điều gì kết thúc trong

    python setup.py build
    python setup.py install
    
    64 hoặc bắt đầu bằng
    python setup.py build
    python setup.py install
    
    65 hoặc
    python setup.py build
    python setup.py install
    
    66.

Nếu một nền tảng cụ thể yêu cầu một thư viện đặc biệt trên nền tảng của bạn, bạn có thể thêm nó bằng cách chỉnh sửa tệp

python setup.py build
python setup.py install
51 và chạy
python setup.py build
python setup.py install
68. Ví dụ: nếu mô -đun được xác định bởi dòng

Phải được liên kết với thư viện toán học

python setup.py build
python setup.py install
69 trên nền tảng của bạn, chỉ cần thêm
python setup.py build
python setup.py install
70 vào dòng:

Các công tắc tùy ý dành cho trình biên dịch hoặc trình liên kết có thể được cung cấp với các tùy chọn

python setup.py build
python setup.py install
71 arg và
python setup.py build
python setup.py install
72 arg:

python setup.py build
python setup.py install
6

Tùy chọn tiếp theo sau

python setup.py build
python setup.py install
71 và
python setup.py build
python setup.py install
72 sẽ được nối vào dòng lệnh thích hợp, vì vậy trong ví dụ trên, trình biên dịch sẽ được truyền tùy chọn
python setup.py build
python setup.py install
75 và trình liên kết sẽ được truyền
python setup.py build
python setup.py install
76. Nếu tùy chọn trình biên dịch yêu cầu đối số, bạn sẽ phải cung cấp nhiều tùy chọn
python setup.py build
python setup.py install
71; Ví dụ: để vượt qua
python setup.py build
python setup.py install
78 Tệp
python setup.py build
python setup.py install
51 sẽ phải chứa
python setup.py build
python setup.py install
80.

Cờ trình biên dịch cũng có thể được cung cấp thông qua việc thiết lập biến môi trường

python setup.py build
python setup.py install
81. Nếu được đặt, nội dung của
python setup.py build
python setup.py install
81 sẽ được thêm vào các cờ biên dịch được chỉ định trong tệp
python setup.py build
python setup.py install
51.
python setup.py build
python setup.py install
81 environment variable. If set, the contents of
python setup.py build
python setup.py install
81 will be added to the compiler flags specified in the
python setup.py build
python setup.py install
51 file.

Sử dụng trình biên dịch không phải Microsoft trên Windows¶

Borland/Codegear C ++ ¶

Tiểu mục này mô tả các bước cần thiết để sử dụng Distutils với trình biên dịch Borland C ++ Phiên bản 5.5. Trước tiên, bạn phải biết rằng định dạng tệp đối tượng Borland (OMF) khác với định dạng được sử dụng bởi phiên bản Python bạn có thể tải xuống từ trang web Python hoặc Activeestate. . Bạn có thể làm điều này như sau:

python setup.py build
python setup.py install
7

Chương trình

python setup.py build
python setup.py install
85 đi kèm với trình biên dịch Borland. Tệp
python setup.py build
python setup.py install
84 nằm trong thư mục
python setup.py build
python setup.py install
87 của cài đặt Python của bạn. Nếu tiện ích mở rộng của bạn sử dụng các thư viện khác (zlib, thì), bạn cũng phải chuyển đổi chúng.

Các tệp được chuyển đổi phải cư trú trong các thư mục giống như các thư viện thông thường.

Làm thế nào để Distutils quản lý để sử dụng các thư viện này với tên đã thay đổi của chúng? Nếu tiện ích mở rộng cần một thư viện (ví dụ:

python setup.py build
python setup.py install
88) DISTUTILS kiểm tra trước nếu tìm thấy thư viện có hậu tố
python setup.py build
python setup.py install
89 (ví dụ:
python setup.py build
python setup.py install
90) và sau đó sử dụng thư viện này. Trong trường hợp, nó không tìm thấy một thư viện đặc biệt như vậy, nó sử dụng tên mặc định (
python setup.py build
python setup.py install
91.) 1

Để để Distutils biên dịch tiện ích mở rộng của bạn với Borland C ++, bây giờ bạn phải gõ:

python setup.py build
python setup.py install
8

Nếu bạn muốn sử dụng trình biên dịch Borland C ++ làm mặc định, bạn có thể chỉ định điều này trong tệp cấu hình cá nhân hoặc toàn hệ thống của mình để biết DisTUTils (xem phần Tệp cấu hình Distutils.)Distutils Configuration Files.)

GNU C / Cygwin / Mingw¶

Phần này mô tả các bước cần thiết để sử dụng distutils với các trình biên dịch GNU C/C ++ trong các phân phối CYGWIN và MINGW của họ. 2 Đối với một thông dịch viên Python được xây dựng với Cygwin, mọi thứ sẽ hoạt động mà không cần bất kỳ bước nào sau đây.

Không phải tất cả các tiện ích mở rộng có thể được xây dựng với Mingw hoặc Cygwin, nhưng nhiều người có thể. Các tiện ích mở rộng rất có thể không hoạt động là những phần mở rộng sử dụng C ++ hoặc phụ thuộc vào các tiện ích mở rộng Microsoft Visual C.

Để để Distutils biên dịch tiện ích mở rộng của bạn với Cygwin, bạn phải gõ:

python setup.py build
python setup.py install
9

và đối với Cygwin ở chế độ không cygwin 3 hoặc cho loại MingW:

python setup.py build --build-base=/path/to/pybuild/foo-1.0
0

Nếu bạn muốn sử dụng bất kỳ tùy chọn/trình biên dịch nào làm mặc định, bạn nên xem xét việc viết nó trong tệp cấu hình cá nhân hoặc toàn hệ thống của mình cho DisTUTils (xem phần Tệp cấu hình Distutils.)Distutils Configuration Files.)

Các phiên bản cũ của Python và Mingw¶

Các hướng dẫn sau đây chỉ áp dụng nếu bạn sử dụng phiên bản Python kém hơn 2.4.1 với MINGW kém hơn 3.0.0 (với Binutils-2.13.90-20030111-1).

Các trình biên dịch này yêu cầu một số thư viện đặc biệt. Nhiệm vụ này phức tạp hơn so với Borland, C ++, vì không có chương trình nào để chuyển đổi thư viện. Đầu tiên bạn phải tạo một danh sách các biểu tượng mà Python DLL xuất. .

python setup.py build --build-base=/path/to/pybuild/foo-1.0
1

Vị trí của một

python setup.py build
python setup.py install
92 được cài đặt sẽ phụ thuộc vào các tùy chọn cài đặt và phiên bản và ngôn ngữ của Windows. Trong một bản cài đặt chỉ dành cho tôi, nó sẽ xuất hiện trong gốc của thư mục cài đặt. Trong một cài đặt được chia sẻ, nó sẽ được đặt trong thư mục hệ thống.

Sau đó, bạn có thể tạo từ những thông tin này một thư viện nhập khẩu cho GCC.

python setup.py build --build-base=/path/to/pybuild/foo-1.0
2

Thư viện kết quả phải được đặt trong cùng thư mục với

python setup.py build
python setup.py install
84. (Nên là thư mục
python setup.py build
python setup.py install
94 trong thư mục cài đặt Python của bạn.)

Nếu tiện ích mở rộng của bạn sử dụng các thư viện khác (zlib, thì), bạn cũng có thể phải chuyển đổi chúng. Các tệp được chuyển đổi phải cư trú trong các thư mục giống như các thư viện thông thường làm.

Chú thích

1

Điều này cũng có nghĩa là bạn có thể thay thế tất cả các thư viện quan hệ hiện có bằng các thư viện OMF cùng tên.

2

Kiểm tra https://www.sourceware.org/cygwin/ để biết thêm thông tin

3

Sau đó, bạn không có sẵn mô phỏng POSIX, nhưng bạn cũng không cần

python setup.py build
python setup.py install
95.