نصبی که بعداً دردسر نسازد
بیشترِ «پایتونم کار نمیکند»ها در ویندوز به همان سی ثانیهی نصب برمیگردد. نصاب رسمی را (نسخهی 64-bit، Python 3.12 یا جدیدتر) از سایت رسمی پایتون بگیرید و در اولین صفحه دقت کنید:
- تیک Add python.exe to PATH را بزنید. بدون آن، دستور
pythonدر ترمینال شناخته نمیشود. - تیک Use admin privileges when installing py.exe را نگه دارید تا py launcher برای همهی کاربران نصب شود.
- اگر نام کاربری ویندوزتان فارسی است یا فاصله دارد، از Customize installation مسیر را به چیزی مثل
C:\Python312تغییر دهید؛ بعضی ابزارها هنوز با مسیرهای یونیکد مشکل دارند. - در پایان، گزینهی Disable path length limit را بزنید تا محدودیت ۲۶۰ کاراکتری مسیر در ویندوز برداشته شود.
PATH دقیقاً چیست؟
PATH فهرستی از پوشههاست که ویندوز وقتی دستوری مثل python را تایپ میکنید، به ترتیب در آنها دنبال فایل اجرایی میگردد. اولین موردی که پیدا شود اجرا میشود. پس اگر دو پایتون نصب دارید، ترتیب PATH تعیین میکند کدام اجرا شود. برای دیدن اینکه واقعاً کدام فایل اجرا میشود:
python --version
Get-Command python
where.exe python
py --list
python در برابر py
| دستور | چیست | کی استفاده کنیم |
|---|---|---|
python | اولین python.exe در PATH | داخل venv فعال (فصل بعد) یا وقتی فقط یک نسخه دارید |
py | Python Launcher ویندوز؛ خودش نسخه را انتخاب میکند | بیرون از venv، مخصوصاً با چند نسخهی نصبشده |
py -3.12 | اجرای دقیق نسخهی 3.12 | ساخت venv با نسخهی مشخص |
py --list | فهرست همهی نسخههای نصبشده | عیبیابی |
py launcher مستقل از PATH کار میکند و به همین دلیل حتی اگر تیک PATH را فراموش کرده باشید، py معمولاً کار میکند. قاعدهی عملی: بیرون از venv از py و داخل venv از python استفاده کنید.
دام Microsoft Store
اگر python را تایپ کنید و بهجای پایتون، Microsoft Store باز شود یا هیچ خروجیای نبینید، ویندوز یک «میانبر جعلی» به نام App execution alias دارد که جلوتر از پایتون واقعی در PATH نشسته است. راهحل: Settings ← Apps ← Advanced app settings ← App execution aliases و خاموش کردن دو مورد python.exe و python3.exe. بعد ترمینال را ببندید و دوباره باز کنید.
برای اطمینان نهایی، این را اجرا کنید تا مسیر دقیق مفسر را ببینید:
py -c "import sys; print(sys.version); print(sys.executable)"
نکتههایی که کمتر کسی میداند
- تغییر PATH فقط روی ترمینالهایی اثر دارد که بعد از تغییر باز شدهاند؛ VS Code را هم باید کامل ببندید و باز کنید، نه فقط تب ترمینالش را.
- اگر اولین خط اسکریپت
#!/usr/bin/env python3.12باشد، py launcher (وقتی باpy script.pyاجرا کنید) آن را میخواند و همان نسخه را انتخاب میکند؛ یعنی shebang لینوکسی در ویندوز هم بیاثر نیست. - نصب مجدد با همان نصاب، گزینهی Modify و Repair دارد؛ اگر PATH را فراموش کردهاید، لازم نیست پایتون را حذف کنید.
- در ویندوز فایل
python3.exeمعمولاً وجود ندارد (جز همان alias استور)؛ دستورهای آموزشهای لینوکسی را باpyجایگزین کنید. - متغیر محیطی
PY_PYTHON=3.12نسخهی پیشفرض py launcher را تعیین میکند، بدون اینکه به PATH دست بزنید.