日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:3. 配置 Python

3. 配置 python

3.1. 配置參數(shù)

用以下方式列出腳本 ./configure 的所有參數(shù):

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、網(wǎng)站建設(shè)、鐵西網(wǎng)絡(luò)推廣、成都微信小程序、鐵西網(wǎng)絡(luò)營銷、鐵西企業(yè)策劃、鐵西品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供鐵西建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

 
 
 
 
  1. ./configure --help

參閱 Python 源代碼中的 Misc/SpecialBuilds.txt 。

3.1.1. 常用參數(shù)

--enable-loadable-sqlite-extensions

支持 _sqlite 擴展模塊中的可加載擴展(默認為否)。

參見 sqlite3.Connection.enable_load_extension() 方法的 sqlite3 模塊。

3.6 新版功能.

--disable-ipv6

禁用 IPv6 支持(若開啟支持則默認啟用),見 socket 模塊。

--enable-big-digits=[15|30]

定義 Python int 數(shù)字的比特大小:15或30比特

By default, the digit size is 30.

定義 PYLONG_BITS_IN_DIGIT1530。

參見 sys.int_info.bits_per_digit 。

--with-cxx-main

--with-cxx-main=COMPILER

編譯 Python main() 函數(shù),用 C++ 編譯器鏈接 Python 可執(zhí)行文件: $CXX` 或 COMPILER。

--with-suffix=SUFFIX

將 Python 的可執(zhí)行文件后綴設(shè)置為 SUFFIX。

The default suffix is .exe on Windows and macOS (python.exe executable), .js on Emscripten node, .html on Emscripten browser, .wasm on WASI, and an empty string on other platforms (python executable).

在 3.11 版更改: The default suffix on WASM platform is one of .js, .html or .wasm.

--with-tzpath=

為 zoneinfo.TZPATH 選擇默認的時區(qū)搜索路徑。 參見 zoneinfo 模塊的 編譯時配置。

默認:/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo

參閱 os.pathsep 路徑分隔符。

3.9 新版功能.

--without-decimal-contextvar

編譯 _decimal 擴展模塊時使用線程本地上下文,而不是協(xié)程本地上下文(默認),參見 decimal 模塊。

參見 decimal.HAVE_CONTEXTVAR 和 contextvars 模塊。

3.9 新版功能.

--with-dbmliborder=

覆蓋 dbm 模塊的 db 后端檢查順序。

合法值是用冒號(:)分隔的字符串,包含后端名稱。

  • ndbm ;

  • gdbm

  • bdb 。

--without-c-locale-coercion

禁用 C 語言對 UTF-8 的強制要求(默認為啟用)。

不定義 PY_COERCE_C_LOCALE 宏。

參閱 PYTHONCOERCECLOCALE 和 PEP 538。

--with-platlibdir=DIRNAME

Python 庫目錄名(默認為 lib)。

Fedora 和 SuSE 在64 位平臺用 lib64

參閱 sys.platlibdir 。

3.9 新版功能.

--with-wheel-pkg-dir=PATH

ensurepip 模塊用到的 wheel 包目錄(默認為無)。

某些 Linux 發(fā)行版的打包策略建議不要捆綁依賴關(guān)系。如 Fedora 在``/usr/share/python-wheels/`` 目錄下安裝 wheel 包,而不安裝 ensurepip._bundled 包。

3.10 新版功能.

--with-pkg-config=[check|yes|no]

Whether configure should use pkg-config to detect build dependencies.

  • check (default): pkg-config is optional

  • yes: pkg-config is mandatory

  • no: configure does not use pkg-config even when present

3.11 新版功能.

--enable-pystats

Turn on internal statistics gathering.

The statistics will be dumped to a arbitrary (probably unique) file in /tmp/py_stats/, or C:\temp\py_stats\ on Windows.

Use Tools/scripts/summarize_stats.py to read the stats.

3.11 新版功能.

3.1.2. WebAssembly Options

--with-emscripten-target=[browser|node]

Set build flavor for wasm32-emscripten.

  • browser (default): preload minimal stdlib, default MEMFS.

  • node: NODERAWFS and pthread support.

3.11 新版功能.

--enable-wasm-dynamic-linking

Turn on dynamic linking support for WASM.

Dynamic linking enables dlopen. File size of the executable increases due to limited dead code elimination and additional features.

3.11 新版功能.

--enable-wasm-pthreads

Turn on pthreads support for WASM.

3.11 新版功能.

3.1.3. 安裝時的選項

--disable-test-modules

不編譯和安裝 test 模塊,如 test 包或 _testcapi 擴展模塊(默認會編譯并安裝)。

3.10 新版功能.

--with-ensurepip=[upgrade|install|no]

選擇 Python 安裝時運行的 ensurepip 命令。

  • upgrade (默認):運行 python -m ensurepip --altinstall --upgrade 命令。

  • install :運行 python -m ensurepip --altinstall 命令。

  • no :不運行 ensurepip。

3.6 新版功能.

3.1.4. 性能選項

建議用 --enable-optimizations --with-lto (PGO + LTO)配置 Python,以便實現(xiàn)最佳性能。

--enable-optimizations

用 PROFILE_TASK 啟用以配置文件主導(dǎo)的優(yōu)化(PGO)(默認為禁用)。

C 編譯器 Clang 需要用到 llvm-profdata 程序進行 PGO。在 macOS 上,GCC 也需要用到它:在 macOS 上 GCC 只是 Clang 的別名而已。

如果使用 --enable-shared 和 GCC ,還可以禁用 libpython 中的語義插值:在編譯器和鏈接器的標(biāo)志中加入 -fno-semantic-interposition 。

3.6 新版功能.

在 3.10 版更改: 在 GCC 上使用 -fno-semantic-interposition

PROFILE_TASK

Makefile 用到的環(huán)境變量:PGO 用到的 Python 命令行參數(shù)。

默認為:-m test --pgo --timeout=$(TESTTIMEOUT) 。

3.8 新版功能.

--with-lto=[full|thin|no|yes]

在編譯過程中啟用鏈接時間優(yōu)化(LTO)(默認為禁用)。

LTO 時 C 編譯器 Clang 需要用到 llvm-ar 參數(shù)(在 macOS 則為 ar),以及支持 LTO 的鏈接器(ld.goldlld)。

3.6 新版功能.

3.11 新版功能: To use ThinLTO feature, use --with-lto=thin on Clang.

--with-computed-gotos

在求值環(huán)節(jié)啟用 goto 計數(shù)(在支持的編譯器上默認啟用)。

--without-pymalloc

禁用特定的 Python 內(nèi)存分配器 pymalloc (默認為啟用)。

參見環(huán)境變量 PYTHONMALLOC 。

--without-doc-strings

禁用靜態(tài)文檔字符串以減少內(nèi)存占用(默認啟用)。Python 中定義的文檔字符串不受影響。

不定義 PY_COERCE_C_LOCALE 宏。

參閱宏 PyDoc_STRVAR() 。

--enable-profiling

gprof 啟用 C 語言級的代碼評估(默認為禁用)。

3.1.5. Python 調(diào)試級編譯

調(diào)試版本 Python 是指帶有 --with-pydebug 參數(shù)的編譯。

調(diào)試版本的效果:

  • 默認顯示所有警告:在 warnings 模塊中,默認警告過濾器的列表是空的。

  • 在 sys.abiflags 中加入 d 標(biāo)記。

  • 加入 sys.gettotalrefcount() 函數(shù)。

  • 命令行參數(shù)加入 -X showrefcount 。

  • 環(huán)境變量加入 PYTHONTHREADDEBUG 。

  • Add support for the __lltrace__ variable: enable low-level tracing in the bytecode evaluation loop if the variable is defined.

  • 安裝 內(nèi)存分配調(diào)試鉤子 ,以便檢測緩沖區(qū)溢出和其他內(nèi)存錯誤。

  • 定義宏 Py_DEBUGPy_REF_DEBUG 。

  • Add runtime checks: code surrounded by #ifdef Py_DEBUG and #endif. Enable assert(...) and _PyObject_ASSERT(...) assertions: don’t set the NDEBUG macro (see also the --with-assertions configure option). Main runtime checks:

    • 增加了對函數(shù)參數(shù)的合理性檢查。

    • 創(chuàng)建 Unicode 和 int 對象時,內(nèi)存按某種模式進行了填充,用于檢測是否使用了未初始化的對象。

    • 確保有能力清除或替換當(dāng)前異常的函數(shù)在調(diào)用時不會引發(fā)異常。

    • Check that deallocator functions don’t change the current exception.

    • 垃圾收集器(gc.collect() 函數(shù))對對象的一致性進行一些基本檢查。

    • 從較寬類型轉(zhuǎn)換到較窄類型時,Py_SAFE_DOWNCAST() 宏會檢查整數(shù)下溢和上溢的情況。

參見 Python 開發(fā)模式 和配置參數(shù) --with-trace-refs 。

在 3.8 版更改: 發(fā)布版和調(diào)試版的編譯現(xiàn)在是 ABI 兼容的:定義了 Py_DEBUG 宏不再意味著同時定義了 Py_TRACE_REFS 宏(參見 --with-trace-refs 參數(shù)),這引入了唯一一處不是 ABI 兼容的地方。

3.1.6. 調(diào)試選項

--with-pydebug

在調(diào)試模式下編譯 Python: 定義宏 Py_DEBUG (默認為禁用)。

--with-trace-refs

為了調(diào)試而啟用引用的跟蹤(默認為禁用)。

效果如下:

  • 定義 Py_TRACE_REFS 宏。

  • 加入 sys.getobjects() 函數(shù)。

  • 環(huán)境變量加入 PYTHONDUMPREFS 。

此版本與發(fā)布模式(默認編譯模式)或調(diào)試模式(Py_DEBUGPy_REF_DEBUG 宏)不具備 ABI 兼容性。

3.8 新版功能.

--with-assertions

編譯時啟用 C 斷言:assert(...);_PyObject_ASSERT(...); (默認不啟用)。

如果設(shè)置此參數(shù),則在 OPT 編譯器變量中不定義 NDEBUG 宏。

參閱 --with-pydebug 選項(調(diào)試編譯模式),它也可以啟用斷言。

3.6 新版功能.

--with-valgrind

啟用 Valgrind (默認禁用)。

--with-dtrace

啟用 DTrace(默認禁用)。

參閱 用 DTrace 和 SystemTap 測試 CPython。

3.6 新版功能.

--with-address-sanitizer

啟用 AddressSanitizer 內(nèi)存錯誤檢測 asan,(默認為禁用)。

3.6 新版功能.

--with-memory-sanitizer

啟用 MemorySanitizer 內(nèi)存錯誤檢測 msan,(默認為禁用)。

3.6 新版功能.

--with-undefined-behavior-sanitizer

啟用 undefinedBehaviorSanitizer 未定義行為檢測 ubsan,(默認為禁用)。

3.6 新版功能.

3.1.7. 鏈接器選項

--enable-shared

啟用共享 Python 庫 libpython 的編譯(默認為禁用)。

--without-static-libpython

不編譯 libpythonMAJOR.MINOR.a,也不安裝 python.o (默認會編譯并安裝)。

3.10 新版功能.

3.1.8. 庫選項

--with-libs=’lib1 …’

鏈接附加庫(默認不會)。

--with-system-expat

用已安裝的 expat 庫編譯 pyexpat 模塊(默認為否)。

--with-system-ffi

用已安裝的 ffi 庫編譯 _ctypes 擴展模塊,參見 ctypes 模塊(默認情況視系統(tǒng)而定)。

--with-system-libmpdec

用已安裝的 mpdec 庫編譯 _decimal 擴展模塊,參見 decimal 模塊(默認為否)。

3.3 新版功能.

--with-readline=editline

editline 庫作為 readline 模塊的后端。

定義 WITH_EDITLINE 宏。

3.10 新版功能.

--without-readline

不編譯 readline 模塊(默認會)。

不定義 HAVE_LIBREADLINE 宏。

3.10 新版功能.

--with-libm=STRING

libm 數(shù)學(xué)庫覆蓋為 STRING (默認情況視系統(tǒng)而定)。

--with-libc=STRING

libc C 庫覆蓋為 STRING (默認情況視系統(tǒng)而定)。

--with-openssl=DIR

OpenSSL 的根目錄。

3.7 新版功能.

--with-openssl-rpath=[no|auto|DIR]

設(shè)置 OpenSSL 庫的運行時庫目錄(rpath)。

  • no (默認): 不設(shè)置 rpath。

  • auto:根據(jù) --with-openssl 和 pkg-config 自動檢測 rpath。

  • DIR :直接設(shè)置 rpath。

3.10 新版功能.

3.1.9. 安全性選項

--with-hash-algorithm=[fnv|siphash13|siphash24]

選擇 Python/pyhash.c 采用的哈希算法。

  • siphash13 (default);

  • siphash24;

  • fnv.

3.4 新版功能.

3.11 新版功能: siphash13 is added and it is the new default.

--with-builtin-hashlib-hashes=md5,sha1,sha256,sha512,sha3,blake2

內(nèi)置哈希模塊:

  • md5

  • sha1。

  • sha256。

  • sha512。

  • sha3 (帶 shake)。

  • blake2。

3.9 新版功能.

--with-ssl-default-suites=[python|openssl|STRING]

覆蓋 OpenSSL 默認的密碼套件字符串。

  • python (默認值): 采用 Python 推薦選擇。

  • openssl:保留 OpenSSL 默認值不動。

  • STRING :采用自定義字符串。

參見 ssl 模塊。

3.7 新版功能.

在 3.10 版更改: 設(shè)置 pythonSTRING 也會把 TLS 1.2 設(shè)為最低版本的協(xié)議。

3.1.10. macOS 選項

參見 Mac/README.rst 。

--enable-universalsdk

--enable-universalsdk=SDKDIR

創(chuàng)建通用的二進制版本。SDKDIR 指定應(yīng)采用的 macOS SDK (默認為否)。

--enable-framework

--enable-framework=INSTALLDIR

創(chuàng)建 Python.framework ,而不是傳統(tǒng)的 Unix 安裝版??蛇x參數(shù) INSTALLDIR 指定了安裝路徑((默認為否)。

--with-universal-archs=ARCH

指定應(yīng)創(chuàng)建何種通用二進制文件。該選項僅當(dāng)設(shè)置了 --enable-universalsdk 時才有效。

可選項:

  • universal2。

  • 32-bit。

  • 64-bit

  • 3-way。

  • intel。

  • intel-32

  • intel-64。

  • all

--with-framework-name=FRAMEWORK

為 macOS 中的 python 框架指定名稱,僅當(dāng)設(shè)置了 --enable-framework 時有效(默認:Python)。

3.1.11. Cross Compiling Options

Cross compiling, also known as cross building, can be used to build Python for another CPU architecture or platform. Cross compiling requires a Python interpreter for the build platform. The version of the build Python must match the version of the cross compiled host Python.

--build=BUILD

configure for building on BUILD, usually guessed by config.guess.

--host=HOST

cross-compile to build programs to run on HOST (target platform)

--with-build-python=path/to/python

path to build python binary for cross compiling

3.11 新版功能.

CONFIG_SITE=file

An environment variable that points to a file with configure overrides.

Example config.site file:

 
 
 
 
  1. # config.site-aarch64
  2. ac_cv_buggy_getaddrinfo=no
  3. ac_cv_file__dev_ptmx=yes
  4. ac_cv_file__dev_ptc=no

Cross compiling example:

 
 
 
 
  1. CONFIG_SITE=config.site-aarch64 ../configure \
  2. --build=x86_64-pc-linux-gnu \
  3. --host=aarch64-unknown-linux-gnu \
  4. --with-build-python=../x86_64/python

3.2. Python 構(gòu)建系統(tǒng)

3.2.1. 構(gòu)建系統(tǒng)的主要文件

  • configure.ac => configure;

  • Makefile.pre.in => Makefile (由 configure 創(chuàng)建);

  • pyconfig.h (由 configure 創(chuàng)建);

  • Modules/Setup: 由Makefile 使用 Module/makesetup shell 腳本構(gòu)建的 C 擴展;

  • setup.py: 使用 distutils 模塊構(gòu)建的 C 擴展。

3.2.2. 主要構(gòu)建步驟

  • C文件( .c )是作為對象文件( .o )構(gòu)建的。

  • 一個靜態(tài)庫 libpython.a )是由對象文件創(chuàng)建的。

  • python.o 和靜態(tài)庫 libpython 被鏈接到最終程序 python 中。

  • C 擴展由 Makefile (參見 Modules/Setup ) 和 python setup.py build 構(gòu)建。

3.2.3. 主要 Makefile 目標(biāo)

  • make :用標(biāo)準(zhǔn)庫構(gòu)建Python。

  • make platform: :構(gòu)建 python 程序,但不構(gòu)建標(biāo)準(zhǔn)庫擴展模塊。

  • make profile-opt :使用 Profile Guided Optimization (PGO) 構(gòu)建 Python 。你可以使用 configure 的 --enable-optimizations 選項來使其成為 make 命令的默認目標(biāo)( make all 或只是 make )。

  • make buildbottest :構(gòu)建 Python 并運行 Python 測試套件,與 buildbots 測試 Python 的方式相同。設(shè)置變量 TESTTIMEOUT (單位:秒)來改變測試超時時間(默認為 1200 即 20 分鐘)。

  • make install:構(gòu)建并安裝 Python 。

  • make regen-all :重新生成(幾乎)所有生成的文件; make regen-stdlib-module-namesautoconf 必須對其余生成的文件單獨運行。

  • make clean :移除構(gòu)建的文件。

  • make distclean :與 make clean 相同,但也刪除由配置腳本創(chuàng)建的文件。

3.2.4. C 擴展

一些 C 擴展是作為內(nèi)置模塊構(gòu)建的,比如模塊 sys 。它們是在定義了宏 Py_BUILD_CORE_BUILTIN 的情況下構(gòu)建的。內(nèi)置模塊沒有 __file__ 屬性:

 
 
 
 
  1. >>> import sys
  2. >>> sys
  3. >>> sys.__file__
  4. Traceback (most recent call last):
  5. File "", line 1, in
  6. AttributeError: module 'sys' has no attribute '__file__'

Other C extensions are built as dynamic libraries, like the _asyncio module. They are built with the Py_BUILD_CORE_MODULE macro defined. Example on Linux x86-64:

 
 
 
 
  1. >>> import _asyncio
  2. >>> _asyncio
  3. >>> _asyncio.__file__
  4. '/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'

Modules/Setup 用于生成 Makefile 目標(biāo),以構(gòu)建 C 擴展。在文件的開頭, C 被構(gòu)建為內(nèi)置模塊。在標(biāo)記 *shared* 之后定義的擴展被構(gòu)建為動態(tài)庫。

setup.py 腳本只使用 distutils 模塊將 C 構(gòu)建為共享庫。

PyAPI_FUNC() , PyAPI_API()PyMODINIT_FUNC()Include/pyport.h 中的定義不同,取決于是否定義宏 Py_BUILD_CORE_MODULE

  • 如果 Py_BUILD_CORE_MODULE 定義了,使用 Py_EXPORTED_SYMBOL 。

  • 否則使用 Py_IMPORTED_SYMBOL 。

如果宏 Py_BUILD_CORE_BUILTIN 被錯誤地用在作為共享庫構(gòu)建的 C 擴展上,它的函數(shù) PyInit_xxx() 就不會被導(dǎo)出,導(dǎo)致導(dǎo)入時出現(xiàn) ImportError 。

3.3. 編譯器和鏈接器的標(biāo)志

腳本 ./configure 和環(huán)境變量設(shè)置的選項,并被 Makefile 使用。

3.3.1. 預(yù)處理器的標(biāo)志

CONFIGURE_CPPFLAGS

變量 CPPFLAGS 的值被傳遞給 ./configure 腳本。

3.6 新版功能.

CPPFLAGS

( Objective ) C/C++ 預(yù)處理器標(biāo)志,例如,使用 -I 如果你的頭文件在一個非標(biāo)準(zhǔn)的目錄 中 、

CPPFLAGS 和 LDFLAGS 都需要包含shell的值,以便 setup.py 能夠使用環(huán)境變量中指定的目錄構(gòu)建擴展模塊。

BASECPPFLAGS

3.4 新版功能.

PY_CPPFLAGS

為構(gòu)建解釋器對象文件增加了額外的預(yù)處理器標(biāo)志。

默認為: $(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS) 。

3.2 新版功能.

3.3.2. 編譯器標(biāo)志

CC

C 編譯器指令。

例如: gcc -pthread 。

MAINCC

C編譯器命令用于構(gòu)建像 python 這樣的程序的 main() 函數(shù)。

由配置腳本的 --with-cxx-main 選項設(shè)置的變量。

默認為: $(CC) 。

CXX

C++ 編譯器指令。

如果使用了 --with-cxx-main 選項,則使用。

例如: g++ -pthread

CFLAGS

C 編譯器標(biāo)志。

CFLAGS_NODIST

CFLAGS_NODIST 用于構(gòu)建解釋器和 stdlib C 擴展。當(dāng) Python 安裝后,編譯器標(biāo)志 應(yīng)該成為 distutils CFLAGS 的一部分時,可以使用它 ( bpo-21121 )。

In particular, CFLAGS should not contain:

  • the compiler flag -I (for setting the search path for include files). The -I flags are processed from left to right, and any flags in CFLAGS would take precedence over user- and package-supplied -I flags.

  • hardening flags such as -Werror because distributions cannot control whether packages installed by users conform to such heightened standards.

3.5 新版功能.

EXTRA_CFLAGS

而外的 C 編譯器指令。

CONFIGURE_CFLAGS

變量 CFLAGS 的值傳遞給 ./configure 腳本。

3.2 新版功能.

CONFIGURE_CFLAGS_NODIST

變量 CFLAGS_NODIST 的值傳遞給 ./configure 腳本。

3.5 新版功能.

BASECFLAGS

基礎(chǔ)編譯器標(biāo)志。

OPT

優(yōu)化標(biāo)志。

CFLAGS_ALIASING

嚴格或不嚴格的別名標(biāo)志,用于編譯 Python/dtoa.c

3.7 新版功能.

CCSHARED

用于構(gòu)建共享庫的編譯器標(biāo)志。

例如, -fPIC 在 Linux 和 BSD 上使用。

CFLAGSFORSHARED

為構(gòu)建解釋器對象文件增加了額外的 C 標(biāo)志。

,默認為: $(CCSHARED) ,當(dāng) --enable-shared 被使用時,則為空字符串

PY_CFLAGS

默認為: $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) 。

PY_CFLAGS_NODIST

默認為: $(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/internal

3.5 新版功能.

PY_STDMODULE_CFLAGS

用于構(gòu)建解釋器對象文件的 C 標(biāo)志。

默認為: $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED)。

3.7 新版功能.

PY_CORE_CFLAGS

默認為 $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE 。

3.2 新版功能.

PY_BUILTIN_MODULE_CFLAGS

編譯器標(biāo)志,將標(biāo)準(zhǔn)庫的擴展模塊作為內(nèi)置模塊來構(gòu)建,如 posix 模塊

默認為: $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN 。

3.8 新版功能.

PURIFY

Purify 命令。 Purify 是一個內(nèi)存調(diào)試程序。

默認為:空字符串(不使用)。

3.3.3. 鏈接器標(biāo)志位

LINKCC

用于構(gòu)建如 python_testembed 的程序的鏈接器命令。

默認為: $(PURIFY) $(MAINCC) 。

CONFIGURE_LDFLAGS

變量 LDFLAGS 的值被傳遞給 ./configure 腳本。

避免指定 CFLAGS , LDFLAGS 等,這樣用戶就可以在命令行上使用它們來追加這些值,而不用觸碰到預(yù)設(shè)的值。

3.2 新版功能.

LDFLAGS_NODIST

LDFLAGS_NODIST 的使用方式與 CFLAGS_NODIST 相同。當(dāng) Python 安裝后,鏈接器標(biāo)志 應(yīng)該成為 distutils LDFLAGS 的一部分時,可以使用它( bpo-35257 )。

In particular, LDFLAGS should not contain:

  • the compiler flag -L (for setting the search path for libraries). The -L flags are processed from left to right, and any flags in LDFLAGS would take precedence over user- and package-supplied -L flags.

CONFIGURE_LDFLAGS_NODIST

變量 LDFLAGS_NODIST 的值傳遞給 ./configure 腳本。

3.8 新版功能.

LDFLAGS

鏈接器標(biāo)志,例如,如果你的庫在一個非標(biāo)準(zhǔn)的目錄 中,則使用 -L

CPPFLAGS 和 LDFLAGS 都需要包含shell的值,以便 setup.py 能夠使用環(huán)境變量中指定的目錄構(gòu)建擴展模塊。

LIBS

鏈接器標(biāo)志,在鏈接 Python 可執(zhí)行文件時將庫傳遞給鏈接器。

例如: -lrt 。

LDSHARED

構(gòu)建一個共享庫的命令。

默認為: @LDSHARED@ $(PY_LDFLAGS) 。

BLDSHARED

構(gòu)建共享庫 libpython 的命令。

默認為: @BLDSHARED@ $(PY_CORE_LDFLAGS) 。

PY_LDFLAGS

默認為: $(CONFIGURE_LDFLAGS) $(LDFLAGS) 。

PY_LDFLAGS_NODIST

默認為: $(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)

3.8 新版功能.

PY_CORE_LDFLAGS

用于構(gòu)建解釋器對象文件的鏈接器標(biāo)志。

3.8 新版功能.


分享名稱:創(chuàng)新互聯(lián)Python教程:3. 配置 Python
轉(zhuǎn)載來于:http://www.dlmjj.cn/article/dpiessd.html