1. Dòng lệnh và môi trường

Trình thông dịch CPython quét dòng lệnh và môi trường để tìm các cài đặt khác nhau.

Sơ đồ dòng lệnh của các triển khai khác có thể khác nhau. Xem Triển khai thay thế để biết thêm tài nguyên.

1.1. Dòng lệnh

Khi gọi Python, bạn có thể chỉ định bất kỳ tùy chọn nào sau đây:

python [-bBdEhiIOPqRsSuvVWx?] [-c lệnh | -m module-name | script | - ] [args]

Tất nhiên, trường hợp sử dụng phổ biến nhất là một lệnh gọi đơn giản của một tập lệnh

python myscript.py

1.1.1. Tùy chọn giao diện

Giao diện trình thông dịch tương tự như giao diện của UNIX shell, nhưng cung cấp một số phương thức gọi bổ sung:

  • Khi được gọi với đầu vào tiêu chuẩn được kết nối với thiết bị tty, nó sẽ nhắc lệnh và thực thi chúng cho đến khi đọc được EOF (ký tự cuối tệp, bạn có thể tạo lệnh đó bằng Ctrl-D trên UNIX hoặc Ctrl-Z, Enter trên Windows). Để biết thêm về chế độ tương tác, hãy xem Chế độ tương tác.

  • Khi được gọi với đối số tên tệp hoặc với tệp làm đầu vào tiêu chuẩn, nó sẽ đọc và thực thi tập lệnh từ tệp đó.

  • Khi được gọi với đối số tên thư mục, nó sẽ đọc và thực thi một tập lệnh có tên thích hợp từ thư mục đó.

  • Khi được gọi bằng -c command, nó sẽ thực thi (các) câu lệnh Python được cung cấp dưới dạng command. Ở đây command có thể chứa nhiều câu lệnh được phân tách bằng dòng mới. Khoảng trắng ở đầu rất quan trọng trong câu lệnh Python!

  • Khi được gọi bằng -m module-name, mô-đun đã cho nằm trên đường dẫn mô-đun Python và được thực thi dưới dạng tập lệnh.

Ở chế độ không tương tác, toàn bộ dữ liệu đầu vào được phân tích cú pháp trước khi nó được thực thi.

Tùy chọn giao diện chấm dứt danh sách các tùy chọn được trình thông dịch sử dụng, tất cả các đối số liên tiếp sẽ kết thúc bằng sys.argv -- lưu ý rằng phần tử đầu tiên, chỉ số dưới 0 (sys.argv[0]), là một chuỗi phản ánh nguồn của chương trình.

-c <command>

Thực thi mã Python trong command. command có thể là một hoặc nhiều câu lệnh được phân tách bằng dòng mới, với khoảng trắng ở đầu đáng kể như trong mã mô-đun thông thường.

Nếu tùy chọn này được cung cấp, phần tử đầu tiên của sys.argv sẽ là "-c" và thư mục hiện tại sẽ được thêm vào đầu sys.path (cho phép các mô-đun trong thư mục đó được nhập dưới dạng mô-đun cấp cao nhất).

Tăng một auditing event cpython.run_command với đối số command.

Thay đổi trong phiên bản 3.14: command được tự động thụt lề trước khi thực thi.

-m <module-name>

Tìm kiếm sys.path cho mô-đun được đặt tên và thực thi nội dung của nó dưới dạng mô-đun __main__.

Vì đối số là tên module nên bạn không được cung cấp phần mở rộng tệp (.py). Tên mô-đun phải là tên mô-đun Python tuyệt đối hợp lệ, nhưng việc triển khai có thể không phải lúc nào cũng thực thi điều này (ví dụ: nó có thể cho phép bạn sử dụng tên có dấu gạch nối).

Tên gói (bao gồm cả gói không gian tên) cũng được cho phép. Khi tên gói được cung cấp thay vì mô-đun thông thường, trình thông dịch sẽ thực thi <pkg>.__main__ làm mô-đun chính. Hành vi này có chủ ý tương tự như việc xử lý các thư mục và tệp zip được chuyển tới trình thông dịch dưới dạng đối số tập lệnh.

Ghi chú

Tùy chọn này không thể được sử dụng với các mô-đun tích hợp và mô-đun mở rộng được viết bằng C, vì chúng không có tệp mô-đun Python. Tuy nhiên, nó vẫn có thể được sử dụng cho các mô-đun được biên dịch trước, ngay cả khi không có sẵn tệp nguồn gốc.

Nếu tùy chọn này được cung cấp, phần tử đầu tiên của sys.argv sẽ là đường dẫn đầy đủ đến tệp mô-đun (trong khi tệp mô-đun đang được định vị, phần tử đầu tiên sẽ được đặt thành "-m"). Giống như tùy chọn -c, thư mục hiện tại sẽ được thêm vào đầu sys.path.

Tùy chọn -I có thể được sử dụng để chạy tập lệnh ở chế độ biệt lập trong đó sys.path không chứa thư mục hiện tại cũng như thư mục gói trang web của người dùng. Tất cả các biến môi trường PYTHON* cũng bị bỏ qua.

Nhiều mô-đun thư viện tiêu chuẩn chứa mã được gọi khi thực thi chúng dưới dạng tập lệnh. Một ví dụ là mô-đun timeit:

python -m timeit -s "setup here" "mã điểm chuẩn ở đây"
chi tiết python -m timeit -h # for

Tăng một auditing event cpython.run_module với đối số module-name.

Xem thêm

runpy.run_module()

Chức năng tương đương có sẵn trực tiếp cho mã Python

PEP 338 -- Thực thi các mô-đun dưới dạng tập lệnh

Thay đổi trong phiên bản 3.1: Cung cấp tên gói để chạy mô-đun con __main__.

Thay đổi trong phiên bản 3.4: gói không gian tên cũng được hỗ trợ

-

Đọc lệnh từ đầu vào tiêu chuẩn (sys.stdin). Nếu đầu vào tiêu chuẩn là một thiết bị đầu cuối, -i được ngụ ý.

Nếu tùy chọn này được đưa ra, phần tử đầu tiên của sys.argv sẽ là "-" và thư mục hiện tại sẽ được thêm vào đầu sys.path.

Tăng auditing event cpython.run_stdin mà không có đối số.

<script>

Thực thi mã Python có trong script, mã này phải là đường dẫn hệ thống tệp (tuyệt đối hoặc tương đối) tham chiếu đến tệp Python, thư mục chứa tệp __main__.py hoặc tệp zip chứa tệp __main__.py.

Nếu tùy chọn này được đưa ra, phần tử đầu tiên của sys.argv sẽ là tên tập lệnh như được đưa ra trên dòng lệnh.

Nếu tên tập lệnh đề cập trực tiếp đến tệp Python, thư mục chứa tệp đó sẽ được thêm vào đầu sys.path và tệp sẽ được thực thi dưới dạng mô-đun __main__.

Nếu tên tập lệnh đề cập đến một thư mục hoặc tệp zip, thì tên tập lệnh sẽ được thêm vào đầu sys.path và tệp __main__.py ở vị trí đó được thực thi dưới dạng mô-đun __main__.

Tùy chọn -I có thể được sử dụng để chạy tập lệnh ở chế độ biệt lập trong đó sys.path không chứa thư mục của tập lệnh cũng như thư mục gói trang web của người dùng. Tất cả các biến môi trường PYTHON* cũng bị bỏ qua.

Tăng một auditing event cpython.run_file với đối số filename.

Xem thêm

runpy.run_path()

Chức năng tương đương có sẵn trực tiếp cho mã Python

Nếu không có tùy chọn giao diện nào được đưa ra, -i được ngụ ý, sys.argv[0] là một chuỗi trống ("") và thư mục hiện tại sẽ được thêm vào đầu sys.path. Ngoài ra, tính năng hoàn thành tab và chỉnh sửa lịch sử sẽ tự động được bật, nếu có trên nền tảng của bạn (xem Cấu hình đường đọc).

Thay đổi trong phiên bản 3.4: Tự động cho phép hoàn thành tab và chỉnh sửa lịch sử.

1.1.2. Tùy chọn chung

-?
-h
--help

In một mô tả ngắn gọn về tất cả các tùy chọn dòng lệnh và các biến môi trường tương ứng rồi thoát.

--help-env

In mô tả ngắn về các biến môi trường dành riêng cho Python và thoát.

Added in version 3.11.

--help-xoptions

In mô tả về các tùy chọn -X dành riêng cho việc triển khai và thoát.

Added in version 3.11.

--help-all

In thông tin sử dụng đầy đủ và thoát.

Added in version 3.11.

-V
--version

In số phiên bản Python và thoát. Đầu ra ví dụ có thể là:

Python 3.8.0b2+

Khi được đưa ra hai lần, hãy in thêm thông tin về bản dựng, như:

Python 3.8.0b2+ (3.8:0c076caaa8, 20/04/2019, 21:55:00)
[GCC 6.2.0 20161005]

Added in version 3.6: Tùy chọn -VV.

1.1.3. Tùy chọn khác

-b

Đưa ra cảnh báo khi chuyển đổi bytes hoặc bytearray sang str mà không chỉ định mã hóa hoặc so sánh bytes hoặc bytearray với str hoặc bytes với int. Phát sinh lỗi khi tùy chọn được đưa ra hai lần (-bb).

Thay đổi trong phiên bản 3.5: Cũng ảnh hưởng đến việc so sánh bytes với int.

-B

Nếu được, Python sẽ không cố ghi các tệp .pyc khi nhập mô-đun nguồn. Xem thêm PYTHONDONTWRITEBYTECODE.

--check-hash-based-pycs default|always|never

Kiểm soát hành vi xác thực của các tệp .pyc dựa trên hàm băm. Xem Vô hiệu hóa mã byte được lưu trong bộ nhớ đệm. Khi được đặt thành default, các tệp bộ đệm mã byte dựa trên hàm băm được chọn và không được chọn sẽ được xác thực theo ngữ nghĩa mặc định của chúng. Khi được đặt thành always, tất cả các tệp .pyc dựa trên hàm băm, dù được chọn hay không được chọn, đều được xác thực dựa trên tệp nguồn tương ứng của chúng. Khi được đặt thành never, các tệp .pyc dựa trên hàm băm không được xác thực dựa trên các tệp nguồn tương ứng của chúng.

Ngữ nghĩa của các tệp .pyc dựa trên dấu thời gian không bị ảnh hưởng bởi tùy chọn này.

-d

Bật đầu ra gỡ lỗi của trình phân tích cú pháp (chỉ dành cho chuyên gia). Xem thêm biến môi trường PYTHONDEBUG.

Tùy chọn này yêu cầu debug build of Python, nếu không nó sẽ bị bỏ qua.

-E

Bỏ qua tất cả các biến môi trường PYTHON*, ví dụ: PYTHONPATHPYTHONHOME, điều đó có thể được đặt.

Xem thêm các tùy chọn -P-I (bị cô lập).

-i

Vào chế độ tương tác sau khi thực hiện.

Sử dụng tùy chọn -i sẽ vào chế độ tương tác trong bất kỳ trường hợp nào sau đây:

  • Khi một tập lệnh được truyền làm đối số đầu tiên

  • Khi tùy chọn -c được sử dụng

  • Khi tùy chọn -m được sử dụng

Chế độ tương tác sẽ bắt đầu ngay cả khi sys.stdin dường như không phải là thiết bị đầu cuối. Tệp PYTHONSTARTUP không được đọc.

Điều này có thể hữu ích khi kiểm tra các biến toàn cục hoặc theo dõi ngăn xếp khi tập lệnh đưa ra một ngoại lệ. Xem thêm PYTHONINSPECT.

-I

Chạy Python ở chế độ biệt lập. Điều này cũng ngụ ý các tùy chọn -E, -P-s.

Ở chế độ biệt lập, sys.path không chứa thư mục của tập lệnh cũng như thư mục gói trang web của người dùng. Tất cả các biến môi trường PYTHON* cũng bị bỏ qua. Các hạn chế khác có thể được áp dụng để ngăn người dùng tiêm mã độc.

Added in version 3.4.

-O

Xóa các câu lệnh khẳng định và bất kỳ mã nào có điều kiện dựa trên giá trị __debug__. Tăng tên tệp cho các tệp đã biên dịch (bytecode) bằng cách thêm .opt-1 trước phần mở rộng .pyc (xem PEP 488). Xem thêm PYTHONOPTIMIZE.

Thay đổi trong phiên bản 3.5: Sửa đổi tên tệp .pyc theo PEP 488.

-OO

Thực hiện -O và loại bỏ các chuỗi tài liệu. Tăng tên tệp cho các tệp đã biên dịch (bytecode) bằng cách thêm .opt-2 trước phần mở rộng .pyc (xem PEP 488).

Thay đổi trong phiên bản 3.5: Sửa đổi tên tệp .pyc theo PEP 488.

-P

Đừng thêm trước một đường dẫn có thể không an toàn tới sys.path:

  • Dòng lệnh python -m module: Không thêm vào thư mục làm việc hiện tại.

  • Dòng lệnh python script.py: Không thêm vào trước thư mục của tập lệnh. Nếu đó là liên kết tượng trưng, ​​hãy giải quyết các liên kết tượng trưng.

  • Dòng lệnh python -c codepython (REPL): Không thêm vào trước một chuỗi trống, nghĩa là thư mục làm việc hiện tại.

Xem thêm biến môi trường PYTHONSAFEPATH và các tùy chọn -E-I (bị cô lập).

Added in version 3.11.

-q

Không hiển thị thông báo bản quyền và phiên bản ngay cả trong chế độ tương tác.

Added in version 3.2.

-R

Bật ngẫu nhiên hàm băm. Tùy chọn này chỉ có hiệu lực nếu biến môi trường PYTHONHASHSEED được đặt thành bất kỳ thứ gì khác ngoài random, vì tính năng ngẫu nhiên băm được bật theo mặc định.

Trên các phiên bản trước của Python, tùy chọn này bật tính năng ngẫu nhiên hóa hàm băm, do đó các giá trị __hash__() của các đối tượng str và bytes được "ướp muối" bằng một giá trị ngẫu nhiên không thể đoán trước. Mặc dù chúng không đổi trong một quy trình Python riêng lẻ, nhưng chúng không thể dự đoán được giữa các lần gọi Python lặp đi lặp lại.

Việc ngẫu nhiên hóa hàm băm nhằm mục đích cung cấp khả năng bảo vệ chống lại việc từ chối dịch vụ do các đầu vào được lựa chọn cẩn thận nhằm khai thác hiệu suất trong trường hợp xấu nhất của cấu trúc dict, độ phức tạp O(n2). Xem https://ocert.org/advisories/ocert-2011-003.html để biết chi tiết.

PYTHONHASHSEED cho phép bạn đặt giá trị cố định cho bí mật hạt băm.

Added in version 3.2.3.

Thay đổi trong phiên bản 3.7: Tùy chọn không còn bị bỏ qua.

-s

Đừng thêm user site-packages directory vào sys.path.

Xem thêm PYTHONNOUSERSITE.

Xem thêm

PEP 370 -- Thư mục gói trang web cho mỗi người dùng

-S

Vô hiệu hóa việc nhập mô-đun site và các thao tác phụ thuộc vào trang web của sys.path mà nó đòi hỏi. Đồng thời tắt các thao tác này nếu site được nhập rõ ràng sau này (gọi site.main() nếu bạn muốn chúng được kích hoạt).

-u

Buộc các luồng stdout và stderr không được đệm. Tùy chọn này không có tác dụng đối với luồng stdin.

Xem thêm PYTHONUNBUFFERED.

Thay đổi trong phiên bản 3.7: Lớp văn bản của luồng stdout và stderr hiện không có bộ đệm.

-v

In thông báo mỗi khi mô-đun được khởi tạo, hiển thị vị trí (tên tệp hoặc mô-đun tích hợp) mà nó được tải. Khi được cung cấp hai lần (-vv), hãy in thông báo cho mỗi tệp được kiểm tra khi tìm kiếm mô-đun. Cũng cung cấp thông tin về việc dọn dẹp mô-đun khi thoát.

Thay đổi trong phiên bản 3.10: Mô-đun site báo cáo các đường dẫn dành riêng cho trang web và các tệp .pth đang được xử lý.

Xem thêm PYTHONVERBOSE.

-W arg

Kiểm soát cảnh báo. Theo mặc định, máy cảnh báo của Python sẽ in các thông báo cảnh báo tới sys.stderr.

Các cài đặt đơn giản nhất áp dụng một hành động cụ thể vô điều kiện cho tất cả các cảnh báo được phát ra bởi một quy trình (ngay cả những cảnh báo bị bỏ qua theo mặc định):

-Mặc định # Warn một lần cho mỗi vị trí cuộc gọi
-Lỗi # Convert đến các trường hợp ngoại lệ
-Luôn luôn # Warn mỗi lần
-Tường # Same như -Walways
-Wmodule # Warn một lần cho mỗi mô-đun gọi điện
-Wonce # Warn một lần cho mỗi quy trình Python
-Wignore # Never cảnh báo

Tên hành động có thể được viết tắt theo ý muốn và trình thông dịch sẽ phân giải chúng thành tên hành động thích hợp. Ví dụ: -Wi giống với -Wignore.

Hình thức đầy đủ của đối số là:

hành động:tin nhắn:danh mục:mô-đun:lineno

Các trường trống khớp với tất cả các giá trị; các trường trống ở cuối có thể được bỏ qua. Ví dụ: -W ignore::DeprecationWarning bỏ qua tất cả cảnh báo DeprecationWarning.

Trường action như đã giải thích ở trên nhưng chỉ áp dụng cho những cảnh báo khớp với các trường còn lại.

Trường message phải khớp với toàn bộ thông báo cảnh báo; trận đấu này không phân biệt chữ hoa chữ thường.

Trường category khớp với danh mục cảnh báo (ví dụ: DeprecationWarning). Đây phải là tên lớp; kiểm tra sự trùng khớp xem danh mục cảnh báo thực tế của thông báo có phải là lớp con của danh mục cảnh báo đã chỉ định hay không.

Trường module khớp với tên mô-đun (đủ điều kiện); trận đấu này phân biệt chữ hoa chữ thường.

Trường lineno khớp với số dòng, trong đó số 0 khớp với tất cả các số dòng và do đó tương đương với số dòng bị bỏ qua.

Có thể đưa ra nhiều tùy chọn -W; khi một cảnh báo khớp với nhiều tùy chọn, hành động cho tùy chọn khớp cuối cùng sẽ được thực hiện. Các tùy chọn -W không hợp lệ sẽ bị bỏ qua (tuy nhiên, một thông báo cảnh báo sẽ được in về các tùy chọn không hợp lệ khi cảnh báo đầu tiên được đưa ra).

Cảnh báo cũng có thể được kiểm soát bằng biến môi trường PYTHONWARNINGS và từ bên trong chương trình Python bằng mô-đun warnings. Ví dụ: hàm warnings.filterwarnings() có thể được sử dụng để sử dụng biểu thức chính quy trên thông báo cảnh báo.

Xem Bộ lọc cảnh báoMô tả bộ lọc cảnh báo để biết thêm chi tiết.

-x

Bỏ qua dòng đầu tiên của nguồn, cho phép sử dụng các dạng #!cmd không phải Unix. Điều này chỉ dành cho một bản hack cụ thể DOS.

-X

Dành riêng cho các tùy chọn triển khai cụ thể khác nhau. CPython hiện xác định các giá trị có thể sau:

  • -X faulthandler để bật faulthandler. Xem thêm PYTHONFAULTHANDLER.

    Added in version 3.3.

  • -X showrefcount để xuất tổng số tham chiếu và số khối bộ nhớ đã sử dụng khi chương trình kết thúc hoặc sau mỗi câu lệnh trong trình thông dịch tương tác. Điều này chỉ hoạt động trên debug builds.

    Added in version 3.4.

  • -X tracemalloc để bắt đầu theo dõi phân bổ bộ nhớ Python bằng mô-đun tracemalloc. Theo mặc định, chỉ khung gần đây nhất được lưu trữ trong dấu vết của dấu vết. Sử dụng -X tracemalloc=NFRAME để bắt đầu theo dõi với giới hạn truy ngược là khung NFRAME. Xem tracemalloc.start()PYTHONTRACEMALLOC để biết thêm thông tin.

    Added in version 3.4.

  • -X int_max_str_digits cấu hình integer string conversion length limitation. Xem thêm PYTHONINTMAXSTRDIGITS.

    Added in version 3.11.

  • -X importtime để hiển thị mỗi lần nhập mất bao lâu. Nó hiển thị tên mô-đun, thời gian tích lũy (bao gồm cả các lần nhập lồng nhau) và thời gian của chính nó (không bao gồm các lần nhập lồng nhau). Lưu ý rằng đầu ra của nó có thể bị hỏng trong ứng dụng đa luồng. Cách sử dụng điển hình là python -X importtime -c 'import asyncio'.

    -X importtime=2 cho phép đầu ra bổ sung cho biết khi nào mô-đun nhập đã được tải. Trong những trường hợp như vậy, chuỗi cached sẽ được in ở cả hai cột thời gian.

    Xem thêm PYTHONPROFILEIMPORTTIME.

    Added in version 3.7.

    Thay đổi trong phiên bản 3.14: Đã thêm -X importtime=2 để theo dõi quá trình nhập mô-đun đã tải và các giá trị dành riêng khác ngoài 12 để sử dụng trong tương lai.

  • -X dev: bật Python Development Mode, giới thiệu các kiểm tra thời gian chạy bổ sung quá tốn kém để bật theo mặc định. Xem thêm PYTHONDEVMODE.

    Added in version 3.7.

  • -X utf8 kích hoạt Python UTF-8 Mode. -X utf8=0 vô hiệu hóa Python UTF-8 Mode một cách rõ ràng (ngay cả khi nó sẽ tự động kích hoạt). Xem thêm PYTHONUTF8.

    Added in version 3.7.

  • -X pycache_prefix=PATH cho phép ghi các tệp .pyc vào một cây song song bắt nguồn từ thư mục đã cho thay vì vào cây mã. Xem thêm PYTHONPYCACHEPREFIX.

    Added in version 3.8.

  • -X warn_default_encoding phát hành EncodingWarning khi mã hóa mặc định dành riêng cho miền địa phương được sử dụng để mở tệp. Xem thêm PYTHONWARNDEFAULTENCODING.

    Added in version 3.10.

  • -X no_debug_ranges vô hiệu hóa việc đưa các bảng ánh xạ thông tin vị trí bổ sung (dòng cuối, độ lệch cột bắt đầu và độ lệch cột cuối) vào mọi lệnh trong đối tượng mã. Điều này hữu ích khi muốn có các đối tượng mã nhỏ hơn và tệp pyc cũng như loại bỏ các chỉ báo vị trí trực quan bổ sung khi trình thông dịch hiển thị dấu vết. Xem thêm PYTHONNODEBUGRANGES.

    Added in version 3.11.

  • -X frozen_modules xác định xem các mô-đun bị đóng băng có bị máy móc nhập khẩu bỏ qua hay không. Giá trị on có nghĩa là chúng được nhập và off có nghĩa là chúng bị bỏ qua. Mặc định là on nếu đây là Python đã được cài đặt (trường hợp bình thường). Nếu nó đang được phát triển (chạy từ cây nguồn) thì mặc định là off. Lưu ý rằng các mô-đun cố định importlib_bootstrapimportlib_bootstrap_external luôn được sử dụng, ngay cả khi cờ này được đặt thành off. Xem thêm PYTHON_FROZEN_MODULES.

    Added in version 3.11.

  • -X perf cho phép hỗ trợ trình lược tả perf của Linux. Khi tùy chọn này được cung cấp, trình lược tả perf sẽ có thể báo cáo các cuộc gọi Python. Tùy chọn này chỉ khả dụng trên một số nền tảng và sẽ không có tác dụng gì nếu không được hỗ trợ trên hệ thống hiện tại. Giá trị mặc định là "tắt". Xem thêm PYTHONPERFSUPPORTHỗ trợ Python cho trình lược tả Linux perf.

    Added in version 3.12.

  • -X perf_jit cho phép hỗ trợ trình lược tả perf của Linux với sự hỗ trợ DWARF. Khi tùy chọn này được cung cấp, trình lược tả perf sẽ có thể báo cáo các cuộc gọi Python bằng thông tin DWARF. Tùy chọn này chỉ khả dụng trên một số nền tảng và sẽ không có tác dụng gì nếu không được hỗ trợ trên hệ thống hiện tại. Giá trị mặc định là "tắt". Xem thêm PYTHON_PERF_JIT_SUPPORTHỗ trợ Python cho trình lược tả Linux perf.

    Added in version 3.13.

  • -X disable_remote_debug tắt hỗ trợ gỡ lỗi từ xa như được mô tả trong PEP 768. Điều này bao gồm cả chức năng lên lịch thực thi mã trong quy trình khác và chức năng nhận mã để thực thi trong quy trình hiện tại.

    Tùy chọn này chỉ khả dụng trên một số nền tảng và sẽ không có tác dụng gì nếu không được hỗ trợ trên hệ thống hiện tại. Xem thêm PYTHON_DISABLE_REMOTE_DEBUGPEP 768.

    Added in version 3.14.

  • -X cpu_count=n ghi đè os.cpu_count(), os.process_cpu_count()multiprocessing.cpu_count(). n phải lớn hơn hoặc bằng 1. Tùy chọn này có thể hữu ích cho những người dùng cần giới hạn tài nguyên CPU của hệ thống vùng chứa. Xem thêm PYTHON_CPU_COUNT. Nếu ndefault thì không có gì bị ghi đè.

    Added in version 3.13.

  • -X presite=package.module chỉ định một mô-đun cần được nhập trước khi mô-đun site được thực thi và trước khi mô-đun __main__ tồn tại. Do đó, mô-đun đã nhập không phải là __main__. Điều này có thể được sử dụng để thực thi mã sớm trong quá trình khởi tạo Python. Python cần phải là built in debug mode để tùy chọn này tồn tại. Xem thêm PYTHON_PRESITE.

    Added in version 3.13.

  • -X gil=0,1 buộc GIL bị tắt hoặc bật tương ứng. Cài đặt thành 0 chỉ khả dụng trong các bản dựng được định cấu hình bằng --disable-gil. Xem thêm PYTHON_GILCPython có luồng miễn phí.

    Added in version 3.13.

  • -X thread_inherit_context=0,1 khiến Thread, theo mặc định, sử dụng bản sao ngữ cảnh của người gọi Thread.start() khi bắt đầu. Nếu không, các chủ đề sẽ bắt đầu với một ngữ cảnh trống. Nếu không được đặt, giá trị của tùy chọn này sẽ mặc định là 1 trên các bản dựng có luồng tự do và 0 nếu không. Xem thêm PYTHON_THREAD_INHERIT_CONTEXT.

    Added in version 3.14.

  • -X context_aware_warnings=0,1 khiến trình quản lý bối cảnh warnings.catch_warnings sử dụng ContextVar để lưu trữ trạng thái bộ lọc cảnh báo. Nếu không được đặt, giá trị của tùy chọn này sẽ mặc định là 1 trên các bản dựng có luồng tự do và 0 nếu không. Xem thêm PYTHON_CONTEXT_AWARE_WARNINGS.

    Added in version 3.14.

  • -X tlbc=0,1 bật (1, mặc định) hoặc vô hiệu hóa (0) mã byte cục bộ của luồng trong các bản dựng được định cấu hình bằng --disable-gil. Khi bị tắt, điều này cũng vô hiệu hóa trình thông dịch chuyên dụng. Xem thêm PYTHON_TLBC.

    Added in version 3.14.

Nó cũng cho phép truyền các giá trị tùy ý và truy xuất chúng thông qua từ điển sys._xoptions.

Added in version 3.2.

Thay đổi trong phiên bản 3.9: Đã xóa tùy chọn -X showalloccount.

Thay đổi trong phiên bản 3.10: Đã xóa tùy chọn -X oldparser.

Removed in version 3.14: -J không còn được dành riêng cho Jython sử dụng nữa và hiện không có ý nghĩa đặc biệt nào.

1.1.4. Kiểm soát màu sắc

Trình thông dịch Python được định cấu hình theo mặc định để sử dụng màu sắc để đánh dấu đầu ra trong một số trường hợp nhất định, chẳng hạn như khi hiển thị dấu vết. Hành vi này có thể được kiểm soát bằng cách đặt các biến môi trường khác nhau.

Đặt biến môi trường TERM thành dumb sẽ tắt màu.

Nếu biến môi trường FORCE_COLOR được đặt thì màu sẽ được bật bất kể giá trị của TERM. Điều này hữu ích trên các hệ thống CI không có thiết bị đầu cuối nhưng vẫn có thể hiển thị các chuỗi thoát ANSI.

Nếu biến môi trường NO_COLOR được đặt, Python sẽ tắt tất cả màu ở đầu ra. Điều này được ưu tiên hơn FORCE_COLOR.

Tất cả các biến môi trường này cũng được các công cụ khác sử dụng để kiểm soát đầu ra màu. Để chỉ kiểm soát đầu ra màu trong trình thông dịch Python, có thể sử dụng biến môi trường PYTHON_COLORS. Biến này được ưu tiên hơn NO_COLOR, do đó biến này được ưu tiên hơn FORCE_COLOR.

1.2. Biến môi trường

Các biến môi trường này ảnh hưởng đến hành vi của Python, chúng được xử lý trước khi chuyển đổi dòng lệnh khác với -E hoặc -I. Theo thông lệ, các chuyển đổi dòng lệnh sẽ ghi đè các biến môi trường khi có xung đột.

PYTHONHOME

Thay đổi vị trí của thư viện Python tiêu chuẩn. Theo mặc định, các thư viện được tìm kiếm trong prefix/lib/pythonversionexec_prefix/lib/pythonversion, trong đó prefixexec_prefix là các thư mục phụ thuộc vào cài đặt, cả hai đều được đặt mặc định là /usr/local.

Khi PYTHONHOME được đặt thành một thư mục duy nhất, giá trị của nó sẽ thay thế cả prefixexec_prefix. Để chỉ định các giá trị khác nhau cho những giá trị này, hãy đặt PYTHONHOME thành prefix:exec_prefix.

PYTHONPATH

Tăng cường đường dẫn tìm kiếm mặc định cho các tập tin mô-đun. Định dạng này giống với PATH của shell: một hoặc nhiều tên đường dẫn thư mục được phân tách bằng os.pathsep (ví dụ: dấu hai chấm trên Unix hoặc dấu chấm phẩy trên Windows). Các thư mục không tồn tại sẽ được âm thầm bỏ qua.

Ngoài các thư mục thông thường, các mục PYTHONPATH riêng lẻ có thể đề cập đến các tệp zip chứa các mô-đun Python thuần túy (ở dạng nguồn hoặc dạng được biên dịch). Không thể nhập mô-đun mở rộng từ tệp zip.

Đường dẫn tìm kiếm mặc định phụ thuộc vào cài đặt nhưng thường bắt đầu bằng prefix/lib/pythonversion (xem PYTHONHOME ở trên). Đó là always được thêm vào PYTHONPATH.

Một thư mục bổ sung sẽ được chèn vào đường dẫn tìm kiếm phía trước PYTHONPATH như được mô tả ở trên trong Tùy chọn giao diện. Đường dẫn tìm kiếm có thể được thao tác từ bên trong chương trình Python dưới dạng biến sys.path.

PYTHONSAFEPATH

Nếu điều này được đặt thành một chuỗi không trống, đừng thêm đường dẫn có thể không an toàn tới sys.path: xem tùy chọn -P để biết chi tiết.

Added in version 3.11.

PYTHONPLATLIBDIR

Nếu giá trị này được đặt thành một chuỗi không trống, nó sẽ ghi đè giá trị sys.platlibdir.

Added in version 3.9.

PYTHONSTARTUP

Nếu đây là tên của một tệp có thể đọc được thì các lệnh Python trong tệp đó sẽ được thực thi trước khi dấu nhắc đầu tiên được hiển thị ở chế độ tương tác. Tệp được thực thi trong cùng một không gian tên nơi các lệnh tương tác được thực thi để các đối tượng được xác định hoặc nhập vào đó có thể được sử dụng mà không cần thẩm định trong phiên tương tác. Bạn cũng có thể thay đổi lời nhắc sys.ps1sys.ps2 cũng như hook sys.__interactivehook__ trong tệp này.

Tăng một auditing event cpython.run_startup với tên tệp làm đối số khi được gọi khi khởi động.

PYTHONOPTIMIZE

Nếu điều này được đặt thành một chuỗi không trống thì nó tương đương với việc chỉ định tùy chọn -O. Nếu được đặt thành số nguyên, nó tương đương với việc chỉ định -O nhiều lần.

PYTHONBREAKPOINT

Nếu điều này được đặt, nó sẽ đặt tên cho một cuộc gọi có thể sử dụng ký hiệu đường chấm. Mô-đun chứa khả năng gọi sẽ được nhập và sau đó khả năng gọi sẽ được chạy bằng cách triển khai mặc định của sys.breakpointhook() mà chính nó được gọi bởi breakpoint() tích hợp. Nếu không được đặt hoặc được đặt thành chuỗi trống, nó tương đương với giá trị "pdb.set_trace". Việc đặt giá trị này thành chuỗi "0" sẽ khiến việc triển khai mặc định của sys.breakpointhook() không làm gì khác ngoài việc quay lại ngay lập tức.

Added in version 3.7.

PYTHONDEBUG

Nếu điều này được đặt thành một chuỗi không trống thì nó tương đương với việc chỉ định tùy chọn -d. Nếu được đặt thành số nguyên, nó tương đương với việc chỉ định -d nhiều lần.

Biến môi trường này yêu cầu debug build of Python, nếu không nó sẽ bị bỏ qua.

PYTHONINSPECT

Nếu điều này được đặt thành một chuỗi không trống thì nó tương đương với việc chỉ định tùy chọn -i.

Biến này cũng có thể được sửa đổi bằng mã Python bằng cách sử dụng os.environ để buộc chế độ kiểm tra khi chấm dứt chương trình.

Tăng auditing event cpython.run_stdin mà không có đối số.

Thay đổi trong phiên bản 3.12.5: (cũng 3.11.10, 3.10.15, 3.9.20 và 3.8.20) Phát ra các sự kiện kiểm tra.

Thay đổi trong phiên bản 3.13: Sử dụng PyREPL nếu có thể, trong trường hợp đó PYTHONSTARTUP cũng được thực thi. Phát ra các sự kiện kiểm tra.

PYTHONUNBUFFERED

Nếu điều này được đặt thành một chuỗi không trống thì nó tương đương với việc chỉ định tùy chọn -u.

PYTHONVERBOSE

Nếu điều này được đặt thành một chuỗi không trống thì nó tương đương với việc chỉ định tùy chọn -v. Nếu được đặt thành số nguyên, nó tương đương với việc chỉ định -v nhiều lần.

PYTHONCASEOK

Nếu điều này được đặt, Python sẽ bỏ qua chữ hoa chữ thường trong câu lệnh import. Điều này chỉ hoạt động trên Windows và macOS.

PYTHONDONTWRITEBYTECODE

Nếu điều này được đặt thành một chuỗi không trống, Python sẽ không cố ghi các tệp .pyc khi nhập mô-đun nguồn. Điều này tương đương với việc chỉ định tùy chọn -B.

PYTHONPYCACHEPREFIX

Nếu điều này được đặt, Python sẽ ghi các tệp .pyc vào cây thư mục nhân bản tại đường dẫn này, thay vì trong các thư mục __pycache__ trong cây nguồn. Điều này tương đương với việc chỉ định tùy chọn -X pycache_prefix=PATH.

Added in version 3.8.

PYTHONHASHSEED

Nếu biến này không được đặt hoặc được đặt thành random, một giá trị ngẫu nhiên sẽ được sử dụng để tạo giá trị băm của các đối tượng str và byte.

Nếu PYTHONHASHSEED được đặt thành một giá trị số nguyên, nó sẽ được sử dụng làm hạt giống cố định để tạo hàm băm() của các loại được bao phủ bởi ngẫu nhiên hàm băm.

Mục đích của nó là cho phép băm lặp lại, chẳng hạn như để tự kiểm tra cho chính trình thông dịch hoặc cho phép một cụm quy trình python chia sẻ các giá trị băm.

Số nguyên phải là số thập phân trong phạm vi [0,4294967295]. Việc chỉ định giá trị 0 sẽ vô hiệu hóa ngẫu nhiên hàm băm.

Added in version 3.2.3.

PYTHONINTMAXSTRDIGITS

Nếu biến này được đặt thành số nguyên, nó sẽ được sử dụng để định cấu hình integer string conversion length limitation chung của trình thông dịch.

Added in version 3.11.

PYTHONIOENCODING

Nếu cài đặt này được đặt trước khi chạy trình thông dịch, nó sẽ ghi đè mã hóa được sử dụng cho stdin/stdout/stderr, theo cú pháp encodingname:errorhandler. Cả hai phần encodingname:errorhandler đều là tùy chọn và có cùng ý nghĩa như trong str.encode().

Đối với stderr, phần :errorhandler bị bỏ qua; trình xử lý sẽ luôn là 'backslashreplace'.

Thay đổi trong phiên bản 3.4: Phần encodingname hiện là tùy chọn.

Thay đổi trong phiên bản 3.6: Trên Windows, mã hóa được chỉ định bởi biến này sẽ bị bỏ qua đối với bộ đệm của bảng điều khiển tương tác trừ khi PYTHONLEGACYWINDOWSSTDIO cũng được chỉ định. Các tập tin và đường ống được chuyển hướng qua các luồng tiêu chuẩn không bị ảnh hưởng.

PYTHONNOUSERSITE

Nếu điều này được đặt, Python sẽ không thêm user site-packages directory vào sys.path.

Xem thêm

PEP 370 -- Thư mục gói trang web cho mỗi người dùng

PYTHONUSERBASE

Xác định user base directory, được sử dụng để tính toán đường đi của user site-packages directoryinstallation paths cho python -m pip install --user.

Xem thêm

PEP 370 -- Thư mục gói trang web cho mỗi người dùng

PYTHONEXECUTABLE

Nếu biến môi trường này được đặt, sys.argv[0] sẽ được đặt thành giá trị của nó thay vì giá trị có được trong thời gian chạy C. Chỉ hoạt động trên macOS.

PYTHONWARNINGS

Điều này tương đương với tùy chọn -W. Nếu được đặt thành một chuỗi được phân tách bằng dấu phẩy, thì nó tương đương với việc chỉ định -W nhiều lần, với các bộ lọc ở sau trong danh sách sẽ được ưu tiên hơn các bộ lọc trước đó trong danh sách.

Các cài đặt đơn giản nhất áp dụng một hành động cụ thể vô điều kiện cho tất cả các cảnh báo được phát ra bởi một quy trình (ngay cả những cảnh báo bị bỏ qua theo mặc định):

PYTHONWARNINGS=# Warn mặc định một lần cho mỗi vị trí cuộc gọi
PYTHONWARNINGS=lỗi # Convert đối với các trường hợp ngoại lệ
PYTHONWARNINGS=luôn luôn # Warn mọi lúc
PYTHONWARNINGS=tất cả # Same như PYTHONWARNINGS=luôn luôn
PYTHONWARNINGS=mô-đun # Warn một lần cho mỗi mô-đun gọi
PYTHONWARNINGS=một lần # Warn một lần cho mỗi quy trình Python
PYTHONWARNINGS=bỏ qua # Never cảnh báo

Xem Bộ lọc cảnh báoMô tả bộ lọc cảnh báo để biết thêm chi tiết.

PYTHONFAULTHANDLER

Nếu biến môi trường này được đặt thành một chuỗi không trống, faulthandler.enable() sẽ được gọi khi khởi động: cài đặt trình xử lý cho các tín hiệu SIGSEGV, SIGFPE, SIGABRT, SIGBUSSIGILL để kết xuất truy nguyên Python. Điều này tương đương với tùy chọn -X faulthandler.

Added in version 3.3.

PYTHONTRACEMALLOC

Nếu biến môi trường này được đặt thành một chuỗi không trống, hãy bắt đầu theo dõi việc phân bổ bộ nhớ Python bằng mô-đun tracemalloc. Giá trị của biến là số lượng khung hình tối đa được lưu trữ trong dấu vết của dấu vết. Ví dụ: PYTHONTRACEMALLOC=1 chỉ lưu trữ khung hình gần đây nhất. Xem chức năng tracemalloc.start() để biết thêm thông tin. Điều này tương đương với việc đặt tùy chọn -X tracemalloc.

Added in version 3.4.

PYTHONPROFILEIMPORTTIME

Nếu biến môi trường này được đặt thành 1, Python sẽ hiển thị mỗi lần nhập mất bao lâu. Nếu được đặt thành 2, Python sẽ bao gồm đầu ra cho các mô-đun đã nhập đã được tải. Điều này tương đương với việc đặt tùy chọn -X importtime.

Added in version 3.7.

Thay đổi trong phiên bản 3.14: Đã thêm PYTHONPROFILEIMPORTTIME=2 để theo dõi quá trình nhập mô-đun đã tải.

PYTHONASYNCIODEBUG

Nếu biến môi trường này được đặt thành một chuỗi không trống, hãy bật debug mode của mô-đun asyncio.

Added in version 3.4.

PYTHONMALLOC

Đặt bộ cấp phát bộ nhớ Python và/hoặc cài đặt các móc gỡ lỗi.

Đặt họ cấp phát bộ nhớ được Python sử dụng:

Cài đặt debug hooks:

  • debug: cài đặt móc gỡ lỗi lên trên default memory allocators.

  • malloc_debug: giống như malloc nhưng cũng cài đặt các hook gỡ lỗi.

  • pymalloc_debug: giống như pymalloc nhưng cũng cài đặt các hook gỡ lỗi.

  • mimalloc_debug: giống như mimalloc nhưng cũng cài đặt các hook gỡ lỗi.

Ghi chú

Trong bản dựng free-threaded, các giá trị malloc, malloc_debug, pymallocpymalloc_debug không được hỗ trợ. Chỉ chấp nhận default, debug, mimallocmimalloc_debug.

Added in version 3.6.

Thay đổi trong phiên bản 3.7: Đã thêm bộ cấp phát "default".

PYTHONMALLOCSTATS

Nếu được đặt thành một chuỗi không trống, Python sẽ in số liệu thống kê của pymalloc memory allocator hoặc mimalloc memory allocator (bất kỳ cái nào đang được sử dụng) mỗi khi một trường đối tượng mới được tạo và khi tắt máy.

Biến này bị bỏ qua nếu biến môi trường PYTHONMALLOC được sử dụng để buộc bộ cấp phát malloc() của thư viện C hoặc nếu Python được định cấu hình mà không hỗ trợ cả pymallocmimalloc.

Thay đổi trong phiên bản 3.6: Biến này hiện cũng có thể được sử dụng trên Python được biên dịch ở chế độ phát hành. Bây giờ nó không có hiệu lực nếu được đặt thành một chuỗi trống.

PYTHONLEGACYWINDOWSFSENCODING

Nếu được đặt thành một chuỗi không trống, chế độ filesystem encoding and error handler mặc định sẽ trở lại các giá trị trước 3,6 lần lượt là 'mbcs' và 'replace'. Mặt khác, các giá trị mặc định mới 'utf-8' và 'surrogatepass' sẽ được sử dụng.

Điều này cũng có thể được kích hoạt khi chạy với sys._enablelegacywindowsfsencoding().

sẵn có: Windows.

Added in version 3.6: Xem PEP 529 để biết thêm chi tiết.

PYTHONLEGACYWINDOWSSTDIO

Nếu được đặt thành một chuỗi không trống, thì không sử dụng trình đọc và ghi bảng điều khiển mới. Điều này có nghĩa là các ký tự Unicode sẽ được mã hóa theo trang mã bảng điều khiển đang hoạt động, thay vì sử dụng utf-8.

Biến này bị bỏ qua nếu các luồng tiêu chuẩn được chuyển hướng (tới tệp hoặc đường dẫn) thay vì đề cập đến bộ đệm của bảng điều khiển.

sẵn có: Windows.

Added in version 3.6.

PYTHONCOERCECLOCALE

Nếu được đặt thành giá trị 0, sẽ khiến ứng dụng dòng lệnh Python chính bỏ qua việc ép buộc các ngôn ngữ C và POSIX dựa trên ASCII kế thừa sang một giải pháp thay thế dựa trên UTF-8 có khả năng cao hơn.

Nếu biến này được đặt not (hoặc được đặt thành giá trị khác 0), biến môi trường ghi đè ngôn ngữ LC_ALL cũng không được đặt và ngôn ngữ hiện tại được báo cáo cho danh mục LC_CTYPE là ngôn ngữ C mặc định hoặc nếu không thì ngôn ngữ POSIX dựa trên ASCII rõ ràng, thì CLI của Python sẽ cố gắng định cấu hình các ngôn ngữ sau cho LC_CTYPE theo thứ tự được liệt kê trước khi tải thời gian chạy trình thông dịch:

  • C.UTF-8

  • C.utf8

  • UTF-8

Nếu việc đặt một trong các danh mục ngôn ngữ này thành công thì biến môi trường LC_CTYPE cũng sẽ được đặt tương ứng trong môi trường quy trình hiện tại trước khi thời gian chạy Python được khởi tạo. Điều này đảm bảo rằng ngoài việc được nhìn thấy bởi cả trình thông dịch và các thành phần nhận biết ngôn ngữ khác đang chạy trong cùng một quy trình (chẳng hạn như thư viện GNU readline), cài đặt cập nhật còn được nhìn thấy trong các quy trình con (bất kể các quy trình đó có đang chạy trình thông dịch Python hay không), cũng như trong các hoạt động truy vấn môi trường thay vì ngôn ngữ C hiện tại (chẳng hạn như locale.getdefaultlocale() của Python).

Việc định cấu hình một trong các ngôn ngữ này (rõ ràng hoặc thông qua ép buộc ngôn ngữ ngầm ở trên) sẽ tự động kích hoạt surrogateescape error handler cho sys.stdinsys.stdout (sys.stderr tiếp tục sử dụng backslashreplace như ở bất kỳ ngôn ngữ nào khác). Hành vi xử lý luồng này có thể được ghi đè bằng PYTHONIOENCODING như bình thường.

Vì mục đích gỡ lỗi, việc đặt PYTHONCOERCECLOCALE=warn sẽ khiến Python phát ra các thông báo cảnh báo trên stderr nếu cưỡng chế ngôn ngữ kích hoạt hoặc nếu một ngôn ngữ mà would đã kích hoạt cưỡng chế vẫn hoạt động khi thời gian chạy Python được khởi chạy.

Cũng lưu ý rằng ngay cả khi tính năng ép buộc ngôn ngữ bị vô hiệu hóa hoặc khi không tìm được ngôn ngữ đích phù hợp, PYTHONUTF8 vẫn sẽ kích hoạt theo mặc định ở các ngôn ngữ dựa trên ASCII cũ. Cả hai tính năng này phải được tắt để buộc trình thông dịch sử dụng ASCII thay vì UTF-8 cho giao diện hệ thống.

sẵn có: Unix.

Added in version 3.7: Xem PEP 538 để biết thêm chi tiết.

PYTHONDEVMODE

Nếu biến môi trường này được đặt thành một chuỗi không trống, hãy bật Python Development Mode, đưa ra các kiểm tra thời gian chạy bổ sung quá đắt để được bật theo mặc định. Điều này tương đương với việc đặt tùy chọn -X dev.

Added in version 3.7.

PYTHONUTF8

Nếu được đặt thành 1, hãy bật Python UTF-8 Mode.

Nếu được đặt thành 0, hãy tắt Python UTF-8 Mode.

Việc đặt bất kỳ chuỗi không trống nào khác sẽ gây ra lỗi trong quá trình khởi tạo trình thông dịch.

Added in version 3.7.

PYTHONWARNDEFAULTENCODING

Nếu biến môi trường này được đặt thành một chuỗi không trống, hãy phát hành EncodingWarning khi sử dụng mã hóa mặc định dành riêng cho ngôn ngữ.

Xem Cảnh báo mã hóa chọn tham gia để biết chi tiết.

Added in version 3.10.

PYTHONNODEBUGRANGES

Nếu biến này được đặt, nó sẽ vô hiệu hóa việc đưa các bảng ánh xạ thông tin vị trí bổ sung (dòng cuối, độ lệch cột bắt đầu và độ lệch cột cuối) vào mọi lệnh trong đối tượng mã. Điều này hữu ích khi muốn có các đối tượng mã nhỏ hơn và tệp pyc cũng như loại bỏ các chỉ báo vị trí trực quan bổ sung khi trình thông dịch hiển thị dấu vết.

Added in version 3.11.

PYTHONPERFSUPPORT

Nếu biến này được đặt thành giá trị khác 0, thì biến này sẽ bật hỗ trợ cho trình lược tả perf của Linux để biến này có thể được phát hiện bởi các lệnh gọi Python.

Nếu được đặt thành 0, hãy tắt hỗ trợ trình biên dịch perf của Linux.

Xem thêm tùy chọn dòng lệnh -X perfHỗ trợ Python cho trình lược tả Linux perf.

Added in version 3.12.

PYTHON_PERF_JIT_SUPPORT

Nếu biến này được đặt thành giá trị khác 0, thì biến này sẽ bật hỗ trợ cho trình lược tả perf của Linux để biến này có thể được phát hiện bằng cách sử dụng thông tin DWARF.

Nếu được đặt thành 0, hãy tắt hỗ trợ trình biên dịch perf của Linux.

Xem thêm tùy chọn dòng lệnh -X perf_jitHỗ trợ Python cho trình lược tả Linux perf.

Added in version 3.13.

PYTHON_DISABLE_REMOTE_DEBUG

Nếu biến này được đặt thành một chuỗi không trống, nó sẽ tắt tính năng gỡ lỗi từ xa được mô tả trong PEP 768. Điều này bao gồm cả chức năng lên lịch thực thi mã trong quy trình khác và chức năng nhận mã để thực thi trong quy trình hiện tại.

Xem thêm tùy chọn dòng lệnh -X disable_remote_debug.

Added in version 3.14.

PYTHON_CPU_COUNT

Nếu biến này được đặt thành số nguyên dương, nó sẽ ghi đè các giá trị trả về của os.cpu_count()os.process_cpu_count().

Xem thêm tùy chọn dòng lệnh -X cpu_count.

Added in version 3.13.

PYTHON_FROZEN_MODULES

Nếu biến này được đặt thành on hoặc off, nó sẽ xác định xem các mô-đun bị đóng băng có bị máy móc nhập khẩu bỏ qua hay không. Giá trị on có nghĩa là chúng được nhập và off có nghĩa là chúng bị bỏ qua. Giá trị mặc định là on cho các bản dựng không gỡ lỗi (trường hợp bình thường) và off cho các bản dựng gỡ lỗi. Lưu ý rằng các mô-đun cố định importlib_bootstrapimportlib_bootstrap_external luôn được sử dụng, ngay cả khi cờ này được đặt thành off.

Xem thêm tùy chọn dòng lệnh -X frozen_modules.

Added in version 3.13.

PYTHON_COLORS

Nếu biến này được đặt thành 1, trình thông dịch sẽ tô màu các loại đầu ra khác nhau. Đặt nó thành 0 sẽ tắt hành vi này. Xem thêm Kiểm soát màu sắc.

Added in version 3.13.

PYTHON_BASIC_REPL

Nếu biến này được đặt thành bất kỳ giá trị nào, trình thông dịch sẽ không cố tải REPL dựa trên Python yêu cầu readline và thay vào đó sẽ sử dụng REPL dựa trên trình phân tích cú pháp truyền thống.

Added in version 3.13.

PYTHON_HISTORY

Biến môi trường này có thể được sử dụng để đặt vị trí của tệp .python_history (theo mặc định, nó là .python_history trong thư mục chính của người dùng).

Added in version 3.13.

PYTHON_GIL

Nếu biến này được đặt thành 1, khóa trình thông dịch chung (GIL) sẽ bị buộc bật. Đặt nó thành 0 sẽ tắt GIL (cần cấu hình Python với tùy chọn xây dựng --disable-gil).

Xem thêm tùy chọn dòng lệnh -X gil, được ưu tiên hơn biến này và CPython có luồng miễn phí.

Added in version 3.13.

PYTHON_THREAD_INHERIT_CONTEXT

Nếu biến này được đặt thành 1 thì theo mặc định, Thread sẽ sử dụng bản sao ngữ cảnh của người gọi Thread.start() khi bắt đầu. Nếu không, các chủ đề mới sẽ bắt đầu với một ngữ cảnh trống. Nếu không được đặt, biến này sẽ mặc định là 1 trên các bản dựng có luồng tự do và 0 nếu không. Xem thêm -X thread_inherit_context.

Added in version 3.14.

PYTHON_CONTEXT_AWARE_WARNINGS

Nếu được đặt thành 1 thì trình quản lý bối cảnh warnings.catch_warnings sẽ sử dụng ContextVar để lưu trữ trạng thái bộ lọc cảnh báo. Nếu không được đặt, biến này sẽ mặc định là 1 trên các bản dựng có luồng tự do và 0 nếu không. Xem -X context_aware_warnings.

Added in version 3.14.

PYTHON_JIT

Trên các bản dựng có sẵn tính năng biên dịch đúng lúc thử nghiệm, biến này có thể buộc JIT bị tắt (0) hoặc bật (1) khi khởi động trình thông dịch.

Added in version 3.13.

PYTHON_TLBC

Nếu được đặt thành 1 sẽ bật mã byte cục bộ của luồng. Nếu được đặt thành 0, mã byte cục bộ của luồng và trình thông dịch chuyên biệt sẽ bị tắt. Chỉ áp dụng cho các bản dựng được định cấu hình bằng --disable-gil.

Xem thêm tùy chọn dòng lệnh -X tlbc.

Added in version 3.14.

1.2.1. Biến chế độ gỡ lỗi

PYTHONDUMPREFS

Nếu được đặt, Python sẽ kết xuất các đối tượng và số lượng tham chiếu vẫn còn tồn tại sau khi tắt trình thông dịch.

Cần cấu hình Python với tùy chọn xây dựng --with-trace-refs.

PYTHONDUMPREFSFILE

Nếu được đặt, Python sẽ kết xuất các đối tượng và số lượng tham chiếu vẫn còn tồn tại sau khi tắt trình thông dịch vào một tệp theo đường dẫn được cung cấp làm giá trị cho biến môi trường này.

Cần cấu hình Python với tùy chọn xây dựng --with-trace-refs.

Added in version 3.11.

PYTHON_PRESITE

Nếu biến này được đặt thành một mô-đun, thì mô-đun đó sẽ được nhập sớm trong vòng đời của trình thông dịch, trước khi mô-đun site được thực thi và trước khi mô-đun __main__ được tạo. Do đó, mô-đun đã nhập không được coi là __main__.

Điều này có thể được sử dụng để thực thi mã sớm trong quá trình khởi tạo Python.

Để nhập mô-đun con, hãy sử dụng package.module làm giá trị, giống như trong câu lệnh nhập.

Xem thêm tùy chọn dòng lệnh -X presite, tùy chọn này được ưu tiên hơn biến này.

Cần cấu hình Python với tùy chọn xây dựng --with-pydebug.

Added in version 3.13.