مقدمات و راه‌اندازی

پایتون چطور اجرا می‌شود؟ مفسر، فایل py. و pip

۴ دقیقه مطالعه · به‌روزرسانی ۲۲ مهر ۱۴۰۵

پایتون را نصب کرده‌اید. قبل از اینکه سراغ محیط‌های برنامه‌نویسی برویم، بد نیست بدانیم وقتی کد پایتون را «اجرا» می‌کنیم دقیقاً چه اتفاقی می‌افتد و کتابخانه‌های بیرونی از کجا می‌آیند.

مفسر یا کامپایلر؟

زبان‌های برنامه‌نویسی از نظر نحوهٔ اجرا معمولاً دو دسته‌اند (زبان‌های بینابینی هم داریم، ولی فعلاً لازم نیست درگیرشان شویم):

زبان‌های کامپایلری زبان‌های مفسری
مثال C، ‏C++‎، Go پایتون، جاوااسکریپت
روش اجرا کل کد یک بار کامپایل می‌شود و به فایل اجرایی (مثل ‎.exe‎) تبدیل می‌شود مفسر کد را خط به خط می‌خواند و همان لحظه اجرا می‌کند
برای اجرا لازم است فقط همان فایل اجرایی خود کد + مفسر پایتون

پایتون یک زبان مفسری (interpreted) است. برای همین در حالت عادی خروجی ‎.exe‎ نمی‌گیرید و هر جا بخواهید برنامه را اجرا کنید، باید پایتون آنجا نصب باشد.

مزیتش این است که توسعه با زبان‌های مفسری سریع‌تر و کم‌دردسرتر است: مرحلهٔ جداگانهٔ «کامپایل» ندارید، تغییر می‌دهید و بلافاصله اجرا می‌کنید.

💡 برای کنجکاوها: پایتون در پشت صحنه کد شما را ابتدا به یک زبان میانی به نام بایت‌کد تبدیل می‌کند (همان فایل‌های ‎.pyc‎ داخل پوشهٔ ‎__pycache__‎) و بعد ماشین مجازی پایتون آن را اجرا می‌کند. ولی از دید ما همان «خط به خط اجرا شدن» کافی است.

دو راه اجرای کد

۱. حالت تعاملی (REPL)

در ترمینال (یا CMD ویندوز) دستور python را بزنید. علامت >>> یعنی پایتون منتظر دستور شماست و هر خط را بلافاصله اجرا می‌کند:

>>> a = 2
>>> b = 3
>>> a + b
5
>>> exit()

برای بیرون آمدن، exit() را با پرانتز بنویسید. این محیط برای امتحان یک خط سریع خوب است، ولی برای نوشتن برنامه نه: کد ذخیره نمی‌شود، ویرایش سخت است و دیباگ ندارد.

۲. نوشتن در فایل ‎.py‎ و اجرای آن

ساده‌ترین شکل برنامه‌نویسی همین است: یک فایل متنی بسازید، کد را در آن بنویسید و پسوندش را ‎.py‎ بگذارید. مثلاً فایل salam.py:

a = 2
b = 3
print(a + b)

حالا در همان پوشه ترمینال باز کنید و فایل را به مفسر بدهید:

python salam.py

💡 میان‌بر ویندوز: در File Explorer داخل پوشهٔ مورد نظر، روی نوار آدرس بالای پنجره کلیک کنید، بنویسید cmd و Enter بزنید. یک خط فرمان دقیقاً در همان پوشه باز می‌شود و لازم نیست با cd مسیر را عوض کنید.

⚠️ اگر پسوند فایل را در ویندوز نمی‌بینید، از منوی View › File name extensions نمایش پسوندها را روشن کنید؛ وگرنه فایلتان ممکن است در واقع salam.py.txt باشد.

مدیران سرورها گاهی دقیقاً همین‌طور با یک ویرایشگر ساده (مثل nano یا vim) کد را تغییر می‌دهند. ولی برای کار روزمره، محیط‌های حرفه‌ای‌تری مثل Jupyter و VS Code کار را خیلی راحت‌تر می‌کنند.

PyPI و pip: انبار کتابخانه‌های پایتون

یکی از دلایل محبوبیت پایتون (کنار سادگی نحو) تعداد بی‌شمار کتابخانه‌ها و نصب راحت آن‌هاست. برای تقریباً هر کاری، از امنیت شبکه و ساخت وب تا یادگیری ماشین و یادگیری عمیق، کسی قبلاً کتابخانه‌اش را نوشته است. برخی از معروف‌ترین‌ها مثل NumPy را حتی بنیادها و شرکت‌های بزرگ به‌صورت مشترک حمایت می‌کنند.

این کتابخانه‌ها (که به آن‌ها پکیج هم می‌گوییم) در مخزنی به نام PyPI (مخفف Python Package Index) در نشانی pypi.org نگهداری می‌شوند. هر وقت خواستید ببینید برای یک کار خاص چه پکیجی وجود دارد، همان‌جا جست‌وجو کنید.

ابزار نصب پکیج‌ها pip است که همراه پایتون نصب می‌شود. در ترمینال (نه داخل محیط >>> پایتون) بنویسید:

pip install numpy
pip list              # فهرست پکیج‌های نصب‌شده
pip uninstall numpy   # حذف

خطای «pip is not recognized»

گاهی پایتون نصب است ولی ترمینال دستور pip را نمی‌شناسد. ساده‌ترین راه‌حل: pip را از طریق خود پایتون اجرا کنید:

python -m pip install numpy

-m یعنی «ماژول pip را با همین پایتون اجرا کن». این روش حتی وقتی چند نسخهٔ پایتون روی سیستم دارید هم مطمئن‌تر است، چون دقیقاً معلوم است پکیج برای کدام پایتون نصب می‌شود. به همین دلیل خیلی از برنامه‌نویس‌ها همیشه همین شکل را به کار می‌برند.

اشتباه رایج: pip داخل محیط پایتون

اگر در محیط >>> بنویسید pip install ...، خطای SyntaxError می‌گیرید. pip دستور ترمینال است، نه دستور پایتون. اول با exit() بیرون بیایید.

وقتی pip وصل نمی‌شود (خطای Timeout)

در بعضی شرایط شبکه، اتصال مستقیم به pypi.org قطع یا بسیار کند است و pip با خطای Timeout متوقف می‌شود. یک راه رایج استفاده از میرور (mirror)، یعنی نسخهٔ آینه‌ای PyPI روی سرور دیگری است. سرویس‌های داخلی متعددی این کار را انجام می‌دهند. نشانی یک میرور معتبر را جایگزین کنید:

# فقط برای همین یک نصب
pip install numpy -i https://MIRROR-ADDRESS/simple

# یا یک بار برای همیشه تنظیم کنید
pip config set global.index-url https://MIRROR-ADDRESS/simple

⚠️ فقط از میرورهای شناخته‌شده و قابل اعتماد استفاده کنید. پکیجی که نصب می‌کنید روی سیستم شما کد اجرا می‌کند.

خلاصه

  • پایتون مفسری است: کد خط به خط اجرا می‌شود و برای اجرا خود مفسر لازم است.
  • کد را یا در حالت تعاملی >>> امتحان کنید، یا در فایل ‎.py‎ بنویسید و با python file.py اجرا کنید.
  • کتابخانه‌ها در PyPI هستند و با pip نصب می‌شوند؛ اگر pip شناخته نشد از python -m pip استفاده کنید.