GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing python.github.io — sysconfig --- دسترسی به اطلاعات پیکربندی پایتون را فراهم میکند
|
مسیر |
پوشه نصب |
|---|---|
stdlib |
|
platstdlib |
|
platlib |
|
purelib |
|
include |
|
scripts |
|
data |
|
nt_user¶مسیر |
پوشه نصب |
|---|---|
stdlib |
|
platstdlib |
|
platlib |
|
purelib |
|
include |
|
scripts |
|
data |
|
osx_framework_user¶مسیر |
پوشه نصب |
|---|---|
stdlib |
|
platstdlib |
|
platlib |
|
purelib |
|
include |
|
scripts |
|
data |
|
ایدهی پشت «طرحواره home (home scheme)» این است که شما یک مجموعهی شخصی از ماژولهای Python میسازید و نگهداری میکنید. نام این طرحواره از ایدهی پوشهی «home» در Unix گرفته شده است، زیرا غیرمعمول نیست که یک کاربر Unix کاری کند که پوشهی «home» او چیدمانی مشابه /usr/ یا /usr/local/ داشته باشد. هر کسی میتواند از این طرحواره استفاده کند، صرفنظر از سیستمعاملی که برای آن نصب میکند.
posix_home¶مسیر |
پوشه نصب |
|---|---|
stdlib |
|
platstdlib |
|
platlib |
|
purelib |
|
include |
|
platinclude |
|
scripts |
|
data |
|
«طرحواره prefix» (prefix scheme) زمانی مفید است که بخواهید از یک نصب پایتون برای انجام ساخت/نصب (یعنی اجرای اسکریپت setup) استفاده کنید، اما ماژولها را در پوشهی ماژولهای شخص ثالث یک نصب پایتون دیگر (یا چیزی که شبیه یک نصب پایتون دیگر به نظر میرسد) نصب کنید. اگر این موضوع کمی غیرعادی به نظر میرسد، واقعاً همینطور است—به همین دلیل طرحهای user و home پیشتر آمدهاند. با این حال، حداقل دو مورد شناختهشده وجود دارد که طرحواره prefix در آنها مفید خواهد بود.
ابتدا در نظر بگیرید که بسیاری از توزیعهای لینوکس، پایتون را در /usr قرار میدهند، نه در /usr/local که سنتیتر است. این کاملاً مناسب است، زیرا در آن موارد، پایتون بخشی از «سیستم» است، نه یک افزونه محلی. با این حال، اگر در حال نصب ماژولهای پایتون از منبع هستید، احتمالاً میخواهید آنها در /usr/local/lib/python2.X قرار بگیرند، نه در /usr/lib/python2.X.
احتمال دیگر، یک سامانه فایلبندی شبکهای است که در آن نامی که برای نوشتن در یک پوشهی دوردست بهکار میرود با نامی که برای خواندن آن بهکار میرود متفاوت است: برای مثال، ممکن است مفسر پایتون که بهصورت /usr/local/bin/python در دسترس است، ماژولها را در /usr/local/lib/python2.X جستجو کند، اما آن ماژولها باید مثلاً در /mnt/@server/export/lib/python2.X نصب شوند.
posix_prefix¶مسیر |
پوشه نصب |
|---|---|
stdlib |
|
platstdlib |
|
platlib |
|
purelib |
|
include |
|
platinclude |
|
scripts |
|
data |
|
nt¶مسیر |
پوشه نصب |
|---|---|
stdlib |
|
platstdlib |
|
platlib |
|
purelib |
|
include |
|
platinclude |
|
scripts |
|
data |
|
sysconfig چند تابع برای تعیین این مسیرهای نصب فراهم میکند.
یک تاپل حاوی تمام طرحهایی که در حال حاضر در sysconfig پشتیبانی میشوند، برمیگرداند.
نام طرحواره پیشفرض برای سکوی فعلی را برمیگرداند.
اضافه شده در نسخهی 3.10: این تابع پیشتر _get_default_scheme() نام داشت و بهعنوان جزئیات پیادهسازی در نظر گرفته میشد.
تغییر یافته در نسخهی 3.11: هنگامی که پایتون از یک محیط مجازی اجرا میشود، طرحواره venv برگردانده میشود.
یک نام طرحواره ترجیحی برای چیدمان نصب مشخصشده با key را برمیگرداند.
key باید یکی از "prefix"، "home" یا "user" باشد.
مقدار بازگشتی یک نام طرحواره است که در get_scheme_names() فهرستشده است. میتوان آن را به توابع sysconfig که آرگومان scheme میگیرند، مانند get_paths() ارسال کرد.
اضافه شده در نسخهی 3.10.
تغییر یافته در نسخهی 3.11: هنگامی که پایتون از یک محیط مجازی اجرا میشود و key="prefix" باشد، طرحواره venv برگردانده میشود.
یک دیکشنری حاوی نام طرحوارههای ترجیحی در سکوی فعلی برمیگرداند. پیادهسازان و بازتوزیعکنندگان پایتون میتوانند طرحوارههای ترجیحی خود را به مقدار سراسری در سطح ماژول _INSTALL_SCHEMES اضافه کنند و این تابع را اصلاح کنند تا آن نام طرحها را برگرداند و برای مثال طرحوارههای متفاوتی را برای استفاده مدیران بسته سیستم و زبان فراهم کنند، بهطوری که بستههای نصبشده توسط هر یک با بستههای نصبشده توسط دیگری مخلوط نشوند.
کاربران نهایی نباید از این تابع استفاده کنند، بلکه باید بهجای آن از get_default_scheme() و get_preferred_scheme() استفاده کنند.
اضافه شده در نسخهی 3.10.
یک تاپل شامل تمام نامهای مسیری که در حال حاضر در sysconfig پشتیبانی میشوند را برمیگرداند.
مسیر نصب متناظر با نام مسیر name را از طرحواره نصب با نام scheme برمیگرداند.
name باید مقداری از فهرستی باشد که get_path_names() برمیگرداند.
sysconfig مسیرهای نصب متناظر با هر نام مسیر را برای هر سکو، با متغیرهایی که باید بسط داده شوند، ذخیره میکند. برای مثال، مسیر stdlib برای طرحواره nt برابر است با: {base}/Lib.
get_path() از متغیرهای برگرداندهشده توسط get_config_vars() برای بسط مسیر استفاده خواهد کرد. همه متغیرها برای هر سکو مقادیر پیشفرض دارند، بنابراین میتوانید این تابع را فراخوانی کنید و مقدار پیشفرض را دریافت کنید.
اگر scheme داده شده باشد، باید مقداری از فهرستی باشد که توسط get_scheme_names() برگردانده میشود. در غیر این صورت، از طرحواره پیشفرض برای سکّوی فعلی استفاده میشود.
اگر vars ارائه شده باشد، باید یک دیکشنری از متغیرها باشد که دیکشنری بازگشتدادهشده توسط get_config_vars() را بهروزرسانی میکند.
اگر expand روی False تنظیم شده باشد، مسیر با استفاده از متغیرها بسط داده نخواهد شد.
اگر name پیدا نشد، یک KeyError پرتاب میشود.
یک دیکشنری شامل تمام مسیرهای نصب متناظر با یک طرحواره نصب برمیگرداند. برای اطلاعات بیشتر get_path() را ببینید.
اگر scheme ارائه نشده باشد، از طرحوارهی پیشفرض برای پلتفرم فعلی استفاده میشود.
اگر vars ارائه شده باشد، باید یک دیکشنری از متغیرها باشد که دیکشنری مورد استفاده برای گسترش مسیرها را بهروزرسانی میکند.
اگر expand روی false تنظیم شود، مسیرها گسترش نمییابند.
اگر scheme یک طرحواره موجود نباشد، get_paths() یک KeyError پرتاب خواهد کرد.
شمارهی نسخهی پایتون بهصورت MAJOR.MINOR را بهعنوان یک رشته برمیگرداند. مشابه '%d.%d' % sys.version_info[:2].
رشتهای را برمیگرداند که سکوی کنونی را مشخص میکند.
این عمدتاً برای تمایز پوشههای ساخت وابسته به پلتفرم و توزیعهای ساختهشده وابسته به پلتفرم استفاده میشود. معمولاً شامل نام و نسخه سیستمعامل و معماری است (همانطور که توسط os.uname() ارائه میشود)، اگرچه اطلاعات دقیق گنجاندهشده به سیستمعامل بستگی دارد؛ برای مثال، در لینوکس، نسخه کرنل اهمیت چندانی ندارد.
نمونههایی از مقادیر برگرداندهشده:
linux-x86_64
linux-aarch64
solaris-2.6-sun4u
ویندوز:
win-amd64 (ویندوز ۶۴ بیتی روی AMD64، معروف به x86_64، Intel64 و EM64T)
win-arm64 (ویندوز ۶۴ بیتی روی ARM64، معروف به AArch64)
win32 (همهی موارد دیگر - بهطور مشخص، sys.platform برگردانده میشود)
سیستمعامل مبتنی بر POSIX:
linux-x86_64
macosx-15.5-arm64
macosx-26.0-universal2 (macOS روی Apple Silicon یا Intel)
android-24-arm64_v8a
برای سایر سکوهای غیر POSIX، در حال حاضر فقط sys.platform را برمیگرداند.
اگر مفسر پایتونِ در حال اجرا از کد منبع ساختهشده باشد و از محل ساخت خود اجرا شود، نه از محلی که در اثر مثلاً اجرای make install یا نصب از طریق یک نصبکنندهی دودویی به وجود آمده است، True برمیگرداند.
یک پرونده به سبک config.h را تجزیه میکند.
fp یک شیء شبهپرونده است که به پروندهای شبیه config.h اشاره میکند.
یک دیکشنری شامل جفتهای نام/مقدار برگردانده میشود. اگر یک دیکشنری اختیاری بهعنوان آرگومان دوم ارسال شود، بهجای یک دیکشنری جدید از آن استفاده میشود و با مقادیر خواندهشده از پرونده بهروزرسانی میشود.
مسیر pyconfig.h را برمیگرداند.
مسیر Makefile را برمیگرداند.
میتوانید از sysconfig بهعنوان یک اسکریپت با گزینهی -m پایتون استفاده کنید:
$ python -m sysconfig Platform: "macosx-10.4-i386" Python version: "3.2" Current installation scheme: "posix_prefix" Paths: data = "/usr/local" include = "/Users/tarek/Dev/svn.python.org/py3k/Include" platinclude = "." platlib = "/usr/local/lib/python3.2/site-packages" platstdlib = "/usr/local/lib/python3.2" purelib = "/usr/local/lib/python3.2/site-packages" scripts = "/usr/local/bin" stdlib = "/usr/local/lib/python3.2" Variables: AC_APPLE_UNIVERSAL_BUILD = "0" AIX_GENUINE_CPLUSPLUS = "0" AR = "ar" ARFLAGS = "rc" ...
این فراخوانی اطلاعات برگرداندهشده توسط get_platform()، get_python_version()، get_path() و get_config_vars() را در خروجی استاندارد چاپ خواهد کرد.