IDLE --- ویرایشگر و پوسته پایتون¶
کد منبع: Lib/idlelib/
IDLE محیط یکپارچه توسعه و یادگیری پایتون است.
IDLE دارای قابلیتهای زیر است:
چندسکویی: عمدتاً بهطور یکسان روی ویندوز، یونیکس و macOS کار میکند
پنجرهی پوستهی پایتون (مفسر تعاملی) با رنگآمیزی ورودی کد، خروجی و پیامهای خطا
ویرایشگر متن چندپنجرهای با واگرد چندگانه، رنگآمیزی پایتون، تورفتگی هوشمند، نکتههای فراخوانی، تکمیل خودکار و سایر ویژگیها
جستجو در هر پنجره، جایگزینی در پنجرههای ویرایشگر، و جستجو در چندین پرونده (grep)
اشکالزدا با نقاط توقف پایا، اجرای گامبهگام و مشاهدهی فضای نام های سراسری و محلی
پیکربندی، مرورگرها و سایر پنجرههای محاورهای
برنامهی IDLE در بستهی idlelib پیادهسازی شده است.
این یک ماژول اختیاری است. اگر این ماژول در نسخه CPython شما موجود نیست، به مستندات توزیعکننده خود (یعنی هر کسی که پایتون را در اختیار شما قرار داده است) مراجعه کنید. اگر شما توزیعکننده هستید، نیازمندیهای ماژولهای اختیاری را ببینید.
راهاندازی و اجرای کد¶
هنگام راهاندازی با گزینهی -s، IDLE پرونده اشارهشده توسط متغیرهای محیطی IDLESTARTUP یا PYTHONSTARTUP را اجرا میکند. IDLE ابتدا وجود IDLESTARTUP را بررسی میکند؛ اگر IDLESTARTUP وجود داشته باشد، پرونده اشارهشده اجرا میشود. اگر IDLESTARTUP وجود نداشته باشد، IDLE وجود PYTHONSTARTUP را بررسی میکند. پروندههای اشارهشده توسط این متغیرهای محیطی، محلهای مناسبی برای ذخیرهسازی توابعی هستند که بهطور مکرر از پوستهی IDLE استفاده میشوند، یا برای اجرای دستورهای ایمپورت جهت ایمپورت کردن ماژولهای رایج.
علاوه بر این، Tk در صورت وجود، یک پرونده راهاندازی را نیز بارگذاری میکند. توجه داشته باشید که پرونده Tk بدون قید و شرط بارگذاری میشود. این پرونده اضافی .Idle.py است و در پوشهی خانگی کاربر جستجو میشود. دستورات موجود در این پرونده در فضای نام Tk اجرا میشوند، بنابراین این پرونده برای ایمپورت کردن توابعی که از پوستهی پایتون IDLE استفاده شوند، مفید نیست.
استفاده از خط فرمان¶
IDLE را میتوان از خط فرمان با گزینههای مختلف فراخوانی کرد. سینتکس کلی به این صورت است:
python -m idlelib [options] [file ...]
گزینههای زیر در دسترس هستند:
- -c <command>¶
فرمان پایتون مشخصشده را در پنجره پوسته اجرا کنید. برای مثال،
-c "print('Hello, World!')"را وارد کنید. در ویندوز، علامتهای نقلقول بیرونی باید همانطور که نشان داده شده است، علامت نقلقول دوتایی باشند.
- -d¶
اشکالزدا را فعال کنید و پنجرهی پوسته را باز کنید.
- -e¶
یک پنجره ویرایشگر باز کنید.
- -h¶
چاپ یک پیام راهنما با ترکیبهای مجاز گزینهها و خروج.
- -i¶
یک پنجرهی پوسته باز کنید.
- -r <file>¶
پرونده مشخصشده را در پنجره پوسته اجرا کنید.
- -s¶
پیش از باز کردن پنجرهی پوسته، پرونده راهاندازی را (همانطور که توسط متغیرهای محیطی
IDLESTARTUPیاPYTHONSTARTUPتعریفشده است) اجرا کنید.
- -t <title>¶
عنوان پنجرهی پوسته را تنظیم کنید.
- -¶
ورودی استاندارد را در پنجرهی پوسته میخواند و اجرا میکند. این گزینه باید آخرین گزینه پیش از هر آرگومانی باشد.
اگر آرگومانهایی ارائه شده باشند:
اگر از
-،-cیا-rاستفاده شود، همهی آرگومانها درsys.argv[1:]قرار میگیرند وsys.argv[0]بهترتیب به''،'-c'یا'-r'تنظیم میشود. هیچ پنجرهی ویرایشگری باز نمیشود، حتی اگر این حالت در گفتوگوی Options بهعنوان پیشفرض تنظیم شده باشد.در غیر این صورت، آرگومانها بهعنوان پروندههایی که باید برای ویرایش باز شوند در نظر گرفته میشوند و
sys.argvآرگومانهای ارسالشده به خود IDLE را منعکس میکند.
شکست راهاندازی¶
IDLE برای ارتباط بین فرایند GUI IDLE و فرایند اجرای کد کاربر از یک سوکت استفاده میکند. هر زمان که پوسته شروع یا راهاندازی مجدد شود، باید یک اتصال برقرار شود. (دومی با یک خط جداکننده که عبارت 'RESTART' را دارد، مشخص میشود). اگر فرایند کاربر نتواند به فرایند GUI متصل شود، معمولاً یک جعبه خطای Tk همراه با پیام 'cannot connect' نمایش میدهد که کاربر را به اینجا ارجاع میدهد. سپس خارج میشود.
یک شکست اتصال مشخص در سیستمهای یونیکسی ناشی از قوانین استتار (masquerading) با پیکربندی نادرست در جایی از تنظیمات شبکهی سیستم است. هنگامی که IDLE از یک پایانه اجرا میشود، پیامی را خواهید دید که با ** Invalid host: آغاز میشود. مقدار معتبر 127.0.0.1 (idlelib.rpc.LOCALHOST) است. میتوانید با tcpconnect -irv 127.0.0.1 6543 در یک پنجرهی پایانه و tcplisten <same args> در پنجرهای دیگر عیبیابی کنید.
یکی از دلایل رایج شکست، پروندهای است که کاربر آن را نوشته و همنام با یک ماژول کتابخانه استاندارد است، مانند random.py و tkinter.py. وقتی چنین پروندهای در همان پوشهی پروندهای که قرار است اجرا شود قرار داشته باشد، IDLE نمیتواند پرونده کتابخانه استاندارد را ایمپورت کند. راهحل فعلی، تغییر نام پرونده کاربر است.
اگرچه کمتر از گذشته رایج است، اما یک برنامه ضدویروس یا فایروال ممکن است اتصال را متوقف کند. اگر نتوان برنامه را طوری تنظیم کرد که اتصال را مجاز کند، باید برای کار کردن IDLE آن را خاموش کرد. اجازه دادن به این اتصال داخلی بیخطر است، زیرا هیچ دادهای در پورتهای خارجی قابل مشاهده نیست. یک مشکل مشابه، پیکربندی نادرست شبکه است که اتصالها را مسدود میکند.
مسائل نصب پایتون گاهی باعث توقف IDLE میشوند: ممکن است نسخههای متعدد با هم تداخل داشته باشند، یا یک نصب واحد به دسترسی مدیر نیاز داشته باشد. اگر نتوانید تداخل را برطرف کنید، یا نتوانید یا نخواهید آن را بهعنوان مدیر اجرا کنید، شاید آسانترین کار حذف کامل پایتون و شروع دوباره باشد.
یک فرایند زامبی pythonw.exe میتواند مشکلساز باشد. در ویندوز، از Task Manager برای بررسی وجود آن استفاده کنید و در صورت وجود، آن را متوقف کنید. گاهی اوقات ممکن است راهاندازی مجددی که بر اثر خرابی برنامه یا وقفه صفحهکلید (control-C) آغاز شده است، در اتصال شکست بخورد. بستن جعبه خطا یا استفاده از Restart Shell در منوی Shell ممکن است یک مشکل موقت را برطرف کند.
هنگامی که IDLE برای نخستین بار اجرا میشود، تلاش میکند پروندههای پیکربندی کاربر را در ~/.idlerc/ بخواند (~ پوشهی خانگی کاربر است). اگر مشکلی وجود داشته باشد، باید پیام خطایی نمایش داده شود. جدا از اختلالهای تصادفی دیسک، میتوان با خودداری از ویرایش دستی پروندهها از این مشکل پیشگیری کرد. در عوض، از پنجرهی پیکربندی، در بخش Options استفاده کنید. هنگامی که خطایی در یک پرونده پیکربندی کاربر وجود داشته باشد، بهترین راهحل ممکن است حذف آن و شروع دوباره از طریق پنجرهی تنظیمات باشد.
اگر IDLE بدون هیچ پیامی خارج شد و از یک کنسول اجرا نشده بود، سعی کنید آن را از یک کنسول یا پایانه اجرا کنید (python -m idlelib) و ببینید آیا این کار منجر به یک پیام خطا میشود.
در سیستمهای مبتنی بر یونیکس با tcl/tk قدیمیتر از 8.6.11 (به About IDLE مراجعه کنید)، برخی نویسهها در برخی فونتها میتوانند باعث خطای tk همراه با پیامی در پایانه شوند. این اتفاق ممکن است چه هنگام اجرای IDLE برای ویرایش پروندهای حاوی چنین نویسهای رخ دهد، و چه بعداً هنگام وارد کردن چنین نویسهای. اگر نمیتوانید tcl/tk را ارتقا دهید، IDLE را دوباره تنظیم کنید تا از فونتی استفاده کند که بهتر کار میکند.
اجرای کد کاربر¶
بهجز استثناهای نادر، هدف این است که نتیجهی اجرای کد پایتون با IDLE همان نتیجهی اجرای همان کد به روش پیشفرض، یعنی مستقیماً با پایتون در کنسول سیستم در حالت متنی یا پنجرهی پایانه باشد. با این حال، رابط و عملکرد متفاوت گاهی بر نتایج قابلمشاهده اثر میگذارد. برای مثال، sys.modules با آیتمهای بیشتری شروع میشود و threading.active_count() مقدار ۲ را بهجای ۱ برمیگرداند.
بهطور پیشفرض، IDLE کد کاربر را در یک فرایند جداگانه سیستمعامل اجرا میکند، نه در فرایند رابط کاربری که پوسته و ویرایشگر را اجرا میکند. در فرایند اجرا، sys.stdin، sys.stdout و sys.stderr با اشیایی جایگزین میشوند که ورودی را از پنجره پوسته دریافت میکنند و خروجی را به پنجره پوسته میفرستند. مقادیر اصلی ذخیرهشده در sys.__stdin__، sys.__stdout__ و sys.__stderr__ دستنخورده باقی میمانند، اما ممکن است None باشند.
ارسال خروجی print از یک فرایند به یک ابزارک متنی در فرایند دیگر، کندتر از چاپ در یک پایانهی سیستم در همان فرایند است. این موضوع بیشترین تأثیر را هنگام چاپ چند آرگومان دارد، زیرا رشتهی هر آرگومان، هر جداکننده و نویسهی خط جدید بهصورت جداگانه ارسال میشوند. برای توسعه، این موضوع معمولاً مشکلی نیست، اما اگر میخواهید در IDLE سریعتر چاپ کنید، هر آنچه را که میخواهید با هم نمایش داده شود، قالببندی کنید و به هم متصل کنید و سپس یک رشتهی واحد را چاپ کنید. هم رشتههای قالببندی و هم str.join() میتوانند به ترکیب فیلدها و سطرها کمک کنند.
جایگزینهای جریانهای استاندارد IDLE توسط زیرفرایندهای ایجادشده در فرایند اجرا به ارث برده نمیشوند، چه مستقیماً توسط کد کاربر و چه توسط ماژولهایی مانند multiprocessing. اگر چنین زیرفرایندی از input از sys.stdin یا از print یا write به sys.stdout یا sys.stderr استفاده کند، IDLE باید در یک پنجره خط فرمان راهاندازی شود. (در ویندوز، بهجای pythonw یا pyw از python یا py استفاده کنید.) در این صورت، زیرفرایند ثانویه برای ورودی و خروجی به آن پنجره متصل خواهد شد.
اگر sys توسط کد کاربر بازنشانی شود، مانند استفاده از importlib.reload(sys)، تغییرات IDLE از بین میرود و ورودی از صفحهکلید و خروجی به صفحه بهدرستی کار نخواهند کرد.
هنگامی که پوسته فوکوس را دارد، صفحهکلید و صفحهنمایش را کنترل میکند. این حالت معمولاً شفاف است، اما توابعی که مستقیماً به صفحهکلید و صفحهنمایش دسترسی دارند کار نخواهند کرد. این توابع شامل توابع مختص سیستم هستند که تعیین میکنند آیا کلیدی فشرده شده است یا خیر، و در صورت فشرده شدن، کدام کلید بوده است.
کد IDLE در حال اجرا در فرایند اجرا، فریمهایی را به پشته فراخوانی اضافه میکند که در غیر این صورت وجود نمیداشتند. IDLE برای کاهش تأثیر فریمهای اضافی پشته، دور sys.getrecursionlimit و sys.setrecursionlimit پوششی قرار میدهد.
هنگامی که کد کاربر، استثنای SystemExit را چه بهصورت مستقیم و چه با فراخوانی sys.exit پرتاب میکند، IDLE به جای خروج، به خط فرمان پوسته بازمیگردد.
خروجی کاربر در پوسته¶
هنگامی که یک برنامه متنی را خروجی میکند، نتیجه توسط دستگاه خروجی متناظر تعیین میشود. هنگامی که IDLE کد کاربر را اجرا میکند، sys.stdout و sys.stderr به ناحیهی نمایش پوستهی IDLE متصل هستند. برخی از قابلیتهای آن از ابزارک Text زیربنایی Tk به ارث رسیدهاند. برخی دیگر افزودههای برنامهنویسیشده هستند. در موارد مهم، پوسته برای توسعه طراحی شده است، نه اجراهای عملیاتی.
برای مثال، پوسته هرگز خروجی را دور نمیاندازد. برنامهای که خروجی نامحدودی به پوسته میفرستد، سرانجام حافظه را پر میکند و منجر به خطای حافظه میشود. در مقابل، برخی از پنجرههای متنی سیستم فقط n خط پایانی خروجی را نگه میدارند. برای مثال، کنسول ویندوز ۱ تا ۹۹۹۹ خط را نگه میدارد که توسط کاربر قابل تنظیم است و پیشفرض آن ۳۰۰ خط است.
ابزارک Text در Tk، و بنابراین پوستهی IDLE، نویسهها (codepoints) موجود در زیرمجموعهی BMP (صفحهی چندزبانهی پایه) از یونیکد را نمایش میدهد. اینکه کدام نویسهها با یک گلیف مناسب و کدام با یک جعبهی جایگزین نمایش داده میشوند، به سیستمعامل و قلمهای نصبشده بستگی دارد. نویسههای Tab موجب میشوند متن بعدی پس از توقفگاه Tab بعدی آغاز شود. (این توقفگاهها هر ۸ «نویسه» یکبار رخ میدهند). نویسههای خط جدید موجب میشوند متن بعدی در خط جدیدی نمایش داده شود. بسته به سیستمعامل و قلم، سایر نویسههای کنترلی نادیده گرفته میشوند یا بهصورت یک فاصله، جعبه یا چیز دیگری نمایش داده میشوند. (حرکت دادن مکاننمای متن در میان چنین خروجیای با کلیدهای جهتدار ممکن است رفتار فاصلهگذاری غافلگیرکنندهای از خود نشان دهد.)
>>> s = 'a\tb\a<\x02><\r>\bc\nd' # Enter 22 chars.
>>> len(s)
14
>>> s # Display repr(s)
'a\tb\x07<\x02><\r>\x08c\nd'
>>> print(s, end='') # Display s as is.
# Result varies by OS and font. Try it.
تابع repr برای بازتاب تعاملی مقادیر عبارات استفاده میشود. این تابع نسخهای تغییریافته از رشته ورودی را برمیگرداند که در آن کدهای کنترلی، برخی از نقاط کد BMP و همه نقاط کد غیر BMP با کدهای خنثیسازی جایگزین شدهاند. همانطور که در بالا نشان داده شد، این تابع به شما امکان میدهد نویسههای یک رشته را شناسایی کنید، صرفنظر از نحوه نمایش آنها.
خروجی عادی و خروجی خطا معمولاً بهطور جداگانه (در سطرهای جداگانه) از ورودی کد و از یکدیگر نگه داشته میشوند. هرکدام رنگ برجستهسازی متفاوتی دریافت میکنند.
در ردگیریهای پشتهی SyntaxError، علامت معمول '^' که محل شناسایی خطا را نشان میدهد، با رنگآمیزی متن همراه با برجستهسازی خطا جایگزین میشود. هنگامی که کد اجراشده از یک پرونده موجب استثناهای دیگر شود، میتوانید روی یک خط از ردگیری پشته راستکلیک کنید تا به خط متناظر در ویرایشگر IDLE بروید. در صورت نیاز، پرونده باز خواهد شد.
پوسته یک امکان ویژه برای فشردهسازی سطرهای خروجی به یک برچسب «Squeezed text» دارد. این کار بهطور خودکار برای خروجی با بیش از N خط انجام میشود (N بهطور پیشفرض ۵۰ است). میتوانید N را در بخش PyShell از صفحهی General در پنجرهی Settings تغییر دهید. میتوانید خروجی با سطرهای کمتر را با کلیک راست روی آن فشرده کنید. این میتواند برای سطرهایی که به اندازهی کافی طولانی هستند و باعث کندی پیمایش میشوند، مفید باشد.
خروجی فشردهشده با دوبار کلیک روی برچسب، در همان جا باز میشود. همچنین میتوان آن را با راستکلیک روی برچسب، به کلیپبورد یا یک پنجرهی نمایش جداگانه ارسال کرد.
توسعه برنامههای tkinter¶
IDLE عمداً با پایتون استاندارد متفاوت است تا توسعه برنامههای tkinter را تسهیل کند. در پایتون استاندارد import tkinter as tk; root = tk.Tk() را وارد کنید؛ هیچ چیزی ظاهر نمیشود. همین دستور را در IDLE وارد کنید؛ یک پنجرهی tk ظاهر میشود. در پایتون استاندارد، برای دیدن پنجره باید root.update() را نیز وارد کنید. IDLE معادل آن را در پسزمینه انجام میدهد، حدود ۲۰ بار در ثانیه، یعنی تقریباً هر ۵۰ میلیثانیه. سپس b = tk.Button(root, text='button'); b.pack() را وارد کنید. باز هم در پایتون استاندارد، تا زمانی که root.update() را وارد نکنید، هیچ تغییر قابل مشاهدهای رخ نمیدهد.
بیشتر برنامههای tkinter، root.mainloop() را اجرا میکنند، که معمولاً تا زمانی که برنامهی tk تخریب نشده باشد بازگشت نمیکند. اگر برنامه با python -i یا از ویرایشگر IDLE اجرا شود، تا زمانی که mainloop() بازگشت نکند، اعلان پوستهی >>> ظاهر نمیشود؛ در آن زمان دیگر چیزی برای تعامل باقی نمانده است.
هنگام اجرای یک برنامه tkinter از ویرایشگر IDLE، میتوانید فراخوانی mainloop را کامنت کنید. در این صورت، بلافاصله اعلان پوسته را دریافت میکنید و میتوانید با برنامه در حال اجرا تعامل کنید. فقط باید بهخاطر داشته باشید که هنگام اجرا در پایتون استاندارد، فراخوانی mainloop را دوباره فعال کنید.
اجرای بدون زیرفرایند¶
بهطور پیشفرض، IDLE کد کاربر را در یک زیرفرایند جداگانه از طریق یک سوکت اجرا میکند که از رابط loopback داخلی استفاده میکند. این اتصال از بیرون قابل مشاهده نیست و هیچ دادهای به اینترنت ارسال یا از آن دریافت نمیشود. اگر با این حال نرمافزار فایروال هشدار داد، میتوانید آن را نادیده بگیرید.
اگر تلاش برای برقراری اتصال سوکت شکست بخورد، Idle به شما اطلاع خواهد داد. چنین شکستهایی گاهی گذرا هستند، اما اگر پایا باشند، ممکن است مشکل یا از فایروالی باشد که اتصال را مسدود کرده است یا از پیکربندی نادرست یک سیستم خاص. تا زمانی که مشکل برطرف نشده است، میتوان Idle را با گزینهی خط فرمان -n اجرا کرد.
اگر IDLE با گزینه خط فرمان -n راهاندازی شود، در یک فرایند واحد اجرا میشود و زیرفرایندی را که سرور اجرای پایتون از طریق RPC را اجرا میکند، ایجاد نمیکند. این حالت میتواند زمانی مفید باشد که پایتون نتواند زیرفرایند یا رابط سوکت RPC را در سکوی شما ایجاد کند. با این حال، در این حالت، کد کاربر از خود IDLE جدا نیست. همچنین، وقتی Run/Run Module (F5) انتخاب میشود، محیط دوباره راهاندازی نمیشود. اگر کد شما تغییر کرده است، برای اعمال تغییرات باید ماژولهای متأثر را reload() کنید و هر آیتم مشخصی را دوباره ایمپورت کنید (مثلاً from foo import baz). به این دلایل، بهتر است تا حد امکان IDLE را با زیرفرایند پیشفرض اجرا کنید.
منسوخ شده از نسخهی 3.4.
راهنما و تنظیمات¶
منابع راهنما¶
گزینهی «IDLE Help» در منوی Help، یک نسخهی html قالببندیشده از فصل IDLE در مرجع کتابخانه (Library Reference) را نمایش میدهد. نتیجه، در یک پنجرهی متنی tkinter فقطخواندنی، نزدیک به چیزی است که در یک مرورگر وب میبینید. با چرخ ماوس، نوار پیمایش، یا نگهداشتن کلیدهای جهتنمای بالا و پایین، در متن پیمایش کنید. یا روی دکمهی TOC (فهرست مطالب) کلیک کنید و یک عنوان بخش را در کادر بازشده انتخاب کنید.
گزینه «Python Docs» در منوی راهنما، منابع گسترده راهنما، از جمله آموزشها را باز میکند که در docs.python.org/x.y در دسترس هستند، که در آن 'x.y' نسخه پایتون در حال اجرا است. اگر سیستم شما یک نسخه برونخط از مستندات داشته باشد (این ممکن است یک گزینه نصب باشد)، بهجای آن، همان نسخه باز خواهد شد.
URLهای انتخابشده را میتوان در هر زمان با استفاده از زبانه General در پنجره Configure IDLE به منوی راهنما افزود یا از آن حذف کرد.
تنظیم ترجیحات¶
تنظیمات قلم، برجستهسازی، کلیدها و تنظیمات عمومی را میتوان از طریق Configure IDLE در منوی Option تغییر داد. تنظیمات غیرپیشفرض کاربر در پوشه .idlerc در پوشه خانه کاربر ذخیره میشوند. مشکلات ناشی از پروندههای نامعتبر پیکربندی کاربر، با ویرایش یا حذف یک یا چند مورد از پروندههای موجود در .idlerc حل میشوند.
در زبانهی Font، برای مشاهدهی اثر نوع قلم و اندازه بر نویسههای متعدد در زبانهای مختلف، نمونهی متنی را ببینید. نمونه را ویرایش کنید تا نویسههای دیگر مورد علاقهی خود را اضافه کنید. برای انتخاب قلمهای تکفاصله از نمونه استفاده کنید. اگر نویسههای خاصی در پوسته یا یک ویرایشگر مشکل دارند، آنها را به ابتدای نمونه اضافه کنید و ابتدا تغییر اندازه و سپس تغییر قلم را امتحان کنید.
در زبانهی Highlights and Keys، یک پوستهی رنگی و مجموعهکلید توکار یا سفارشی انتخاب کنید. برای استفاده از یک پوستهی رنگی یا مجموعهکلید توکار جدیدتر در IDLEهای قدیمیتر، آن را بهعنوان یک پوسته یا مجموعهکلید سفارشی جدید ذخیره کنید تا برای IDLEهای قدیمیتر در دسترس باشد.
IDLE در macOS¶
در System Preferences: Dock، میتوانید «Prefer tabs when opening documents» را روی «Always» تنظیم کنید. این تنظیم با چارچوب GUI tk/tkinter که IDLE از آن استفاده میکند سازگار نیست و چند ویژگی IDLE را از کار میاندازد.
افزونهها¶
IDLE دارای یک قابلیت افزونه است. تنظیمات افزونهها را میتوان از طریق زبانهی Extensions در محاورهی تنظیمات تغییر داد. برای اطلاعات بیشتر، ابتدای config-extensions.def در پوشهی idlelib را ببینید. تنها افزونهی پیشفرض کنونی zzdummy است، یک نمونه که برای آزمایش نیز استفاده میشود.
idlelib --- پیادهسازی برنامهی IDLE¶
کد منبع: Lib/idlelib
بسته Lib/idlelib برنامه IDLE را پیادهسازی میکند. برای نحوه استفاده از IDLE، ادامه این صفحه را ببینید.
پروندههای موجود در idlelib در idlelib/README.txt توصیف شدهاند. برای دسترسی به این پرونده، یا آن را در idlelib باز کنید یا در منوی IDLE روی Help => About IDLE کلیک کنید. این پرونده همچنین آیتمهای منوی IDLE را به کدی که آن آیتم را پیادهسازی میکند، نگاشت میکند. به جز پروندههای فهرستشده در «Startup»، کد idlelib به این معنا «خصوصی» است که تغییرات ویژگیها میتوانند به نسخههای قدیمیتر بکپورت شوند (به PEP 434 مراجعه کنید).