مرحله 0 — PyBullet اصلاً چیست؟

PyBullet یک Python interface برای Bullet Physics SDK است.

یعنی موتور اصلی Bullet با C/C++ ساخته شده و PyBullet به ما اجازه می‌دهد از طریق Python با آن کار کنیم.

طبق راهنمای رسمی، PyBullet برای مواردی مثل:

  • شبیه‌سازی فیزیک
  • رباتیک
  • Reinforcement Learning
  • برخورد اجسام
  • Forward Dynamics
  • Inverse Dynamics
  • Forward Kinematics
  • Inverse Kinematics
  • URDF
  • SDF
  • MJCF

استفاده می‌شود.

پس وقتی می‌نویسیم:

importpybullet

در واقع داریم یک کتابخانه Python را وارد برنامه می‌کنیم که پشت آن موتور فیزیک Bullet قرار دارد.hgfh


ترتیب کار اینگونه هست

1️⃣ منبع رسمی PyBullet

2️⃣ آیا Windows پشتیبانی می‌شود؟

3️⃣ نسخه PyBullet

4️⃣ بررسی Wheelها

5️⃣ تشخیص Python سازگار

6️⃣ تشخیص 32/64 بیت

7️⃣ بررسی Python نصب‌شده روی سیستم

8️⃣ تصمیم: استفاده از Python فعلی یا نصب Python مناسب

9️⃣ نصب PyBullet با pip

🔟 تست

ترتیب کار اینگونه هست

1️⃣ منبع رسمی PyBullet

مخزن رسمی و اصلی در GitHub  به ادرس https://github.com/bulletphysics/bullet3?utm_source=chatgpt.com است.

نکته : برای اطمینان از اینکه ایا این مخزن رسمی و اصلی پای بالت در گیت هاب است یا نه باید بگویم بله.

دلایل رسمی بودن این مخزن:

  • نام سازمان (Organization): مخزن در حساب کاربری سازمانی bulletphysics در GitHub قرار دارد که نشان‌دهنده مالکیت رسمی پروژه است.
  • تأیید منبع رسمی: در خود فایل README این مخزن، به صراحت عبارت “This is the official repository of Bullet” (این مخزن رسمی Bullet است) آمده است.
  • اطلاعات توصیفی: توضیحات مخزن با معرفی رسمی این کتابخانه (SDK بلادرنگ برای تشخیص برخورد و شبیه‌سازی فیزیک در VR، بازی‌ها، روباتیک و…) کاملاً همخوانی دارد.
  • پیوند به وبسایت رسمی: اطلاعات API مخزن، وبسایت رسمی پروژه را با آدرس http://bulletphysics.org نشان می‌دهد که به عنوان صفحه اصلی این پروژه شناخته می‌شود.

بنابراین با اطمینان کامل می‌توانید از این مخزن برای دریافت و مطالعه کدهای اصلی Bullet Physics استفاده کنید.

2️⃣ آیا Windows پشتیبانی می‌شود؟

مخزن رسمی و اصلی در GitHub  به ادرس https://github.com/bulletphysics/bullet3?utm_source=chatgpt.com در قسمت README صراحتاً نوشته شده که Bullet روی Windows، Linux، macOS، iOS و Android تست شده است. همچنین برای PyBullet روش نصب پیشنهادی را pip install pybullet معرفی کرده است.

بنابراین پای بالت روی ویندوز پشتیبانی میشود.

3️⃣ نسخه PyBullet

برای نصب Bullet Physics یا همان پای بالت خودمان ! دقیقاً به چه چیزی نیاز دارم و چرا؟

بسته به اینکه می‌خواهید از طریق پایتون استفاده کنید یا مستقیماً با C++ کار کنید، دو مسیر متفاوت وجود دارد:

🟢 مسیر اول: استفاده با پایتون (توصیه‌شده برای شروع) و البته بخش مربوط به اموزش ما

این روش برای اکثر کاربران (رباتیک، یادگیری ماشین، شبیه‌سازی) مناسب است.

چه چیزی نیاز دارید؟

  1. پایتون (نسخه 3.6 یا بالاتر)
  2. pip (مدیر بسته پایتون که معمولاً همراه پایتون نصب می‌شود)
  3. اتصال به اینترنت برای دانلود بسته

دستور نصب:

bash

pip install pybullet

چرا به چیز دیگری نیاز نیست؟

  • چون با این دستور، فایل Wheel مناسب سیستم شما (ویندوز، لینوکس یا مک) به صورت خودکار از اینترنت دانلود و نصب می‌شود.
  • این Wheel شامل همه چیز است: هم کدهای C++ از پیش کامپایل‌شده و هم رابط پایتونی.
  • شما هیچ‌کدام از موارد زیر را نیاز ندارید:
    • کامپایلر C++
    • CMake
    • هیچ کتابخانه جانبی دیگری

🔵 مسیر دوم: استفاده با C++ (برای توسعه‌دهندگان حرفه‌ای)

اگر می‌خواهید مستقیماً از موتور فیزیک در یک پروژه C++ استفاده کنید (مثل ساخت یک بازی یا شبیه‌ساز پیشرفته)، مسیر متفاوت است.

چه چیزی نیاز دارید؟

مورد نیاز دلیل
کامپایلر C++ (مثل GCC در لینوکس، MSVC در ویندوز، Clang در مک) برای ترجمه کدهای C++ به زبان ماشین قابل اجرا روی سیستم شما
CMake (نسخه 3.10 یا بالاتر) ابزاری برای مدیریت فرآیند ساخت (build) پروژه. به شما کمک می‌کند تا کتابخانه را برای سیستم‌عامل و کامپایلر خود پیکربندی کنید.
Git (اختیاری اما توصیه‌شده) برای دریافت مستقیم کدهای منبع از مخزن رسمی
کتابخانه‌های گرافیکی (اختیاری) مثل OpenGL یا GLFW برای اجرای دموهای گرافیکی

چرا این همه پیچیدگی؟

این روش به شما کنترل کامل روی بهینه‌سازی‌ها و تنظیمات کامپایل می‌دهد.

چون در این حالت شما دارید موتور را از صفر برای سیستم خاص خود می‌سازید تا بتوانید از تمام قابلیت‌های آن در کدهای C++ خود استفاده کنید.

📊 جدول مقایسه نهایی

ویژگی مسیر پایتون (PyBullet) مسیر C++ (مستقیم)
پیش‌نیازها فقط پایتون و pip کامپایلر، CMake، Git
زمان نصب چند ثانیه چند دقیقه تا نیم ساعت
نیاز به کامپایل خیر (استفاده از Wheel) بله (کامپایل دستی)
مناسب برای شبیه‌سازی سریع، رباتیک، یادگیری ماشین توسعه بازی، پروژه‌های حرفه‌ای C++
سطح سختی بسیار آسان متوسط تا پیشرفته

اما شاید سوال پیش بیاد که اصلا wheel ؟

فرض کنید شما یک دستور پخت کیک به زبان فرانسوی (کدهای C++) دارید و می‌خواهید در خانه خود (سیستم شما) یک کیک بپزید.

حالت اول: بدون Wheel

  • شما باید خودتان دستور پخت را از فرانسوی به فارسی ترجمه کنید (کامپایل کردن).
  • برای این کار به یک مترجم (کامپایلر C++) نیاز دارید.
  • اگر دستور پخت طولانی و پیچیده باشد، این کار ممکن است چند دقیقه تا نیم ساعت طول بکشد.
  • اگر یک خطا در ترجمه داشته باشید، کیک شما خراب می‌شود (ارور کامپایل).

حالت دوم: با Wheel

  • یک نفر دیگر (توسعه‌دهنده Bullet) قبلاً این دستور پخت را برای نوع فر شما ترجمه کرده است. مثلاً اگر شما فر گازی دارید (سیستم Windows 64-bit)، او یک کیک از پیش پخته برای فر گازی آماده کرده است.
  • این کیک آماده را در یک جعبه (فایل .whl) گذاشته و در فروشگاه (PyPI) قرار داده است.
  • شما با pip install، فقط آن جعبه را برمی‌دارید، باز می‌کنید و کیک را همان‌طور که هست استفاده می‌کنید.
  • این کار چند ثانیه بیشتر طول نمی‌کشد و نیازی به مترجم یا ترجمه ندارید.

خلاصه مفهوم Wheel:

بدون Wheel با Wheel
شما باید کدهای C++ را روی سیستم خود کامپایل (ترجمه) کنید. از کدهای از پیش کامپایل‌شده استفاده می‌کنید.
نیاز به نصب کامپایلر و ابزارهای ساخت (CMake) دارید. هیچ نیازی به کامپایلر یا CMake ندارید.
فرآیند نصب طولانی (چند دقیقه تا نیم ساعت) و مستعد خطا است. فرآیند نصب چند ثانیه‌ای و بدون خطا است.

خب تا اینجا فهمیدیم که برای پای بالت به پایتون و wheel نیاز داریم که وقتی دستور pip install pybullet را اجرا می‌کنید:

  • pip خودش چک می‌کند که سیستم شما چیست (ویندوز، لینوکس، مک)
  • خودش فایل Wheel مناسب را پیدا کرده و دانلود می‌کند
  • خودش همه چیز را نصب می‌کند

شما به عنوان کاربر، هیچ نقشی در این فرآیند ندارید. فقط یک دستور می‌نویسید و تمام.

اما مسئله ای که مهمه : چه نسخه ای از پایتون مناسبه هست ؟

اینجا باید از منبع رسمی توزیع PyBullet یعنی PyPI و فایل‌های انتشارش استفاده کنیم.

«ما برای این دوره Python 3.11 64-bit را به‌عنوان محیط مرجع انتخاب کرده‌ایم، چون طبق صفحه رسمی https://pypi.org/project/pybullet/?utm_source=chatgpt.com#description نسخه های PyBullet 3.2.7 برای CPython 3.11 در PyPI دارای انتشار Wheel است. اما Wheel موجود در release رسمی فعلی Linux است؛ بنابراین وجود cp311 به‌تنهایی تضمین نمی‌کند که نصب pip روی Windows بدون Build Tools انجام شود.»

اگر Windows 64-bit داری، ابتدا cmd رو باز کن و PyBullet را با pip نصب کن:

py -m pip install pybullet

اگر نصب شد، تمام است و می‌توانی استفاده کنی.

اگر pip هنگام نصب خطای

Microsoft Visual C++ 14.0 or greater is required

یا

Could not find a version that satisfies the requirement pybullet

یا

یا مسئله‌ای مربوط به build/compilation می‌بینی.

داد، یعنی برای نسخه‌ای که pip از PyPI گرفته، Wheel آماده‌ی Windows در دسترس نبوده و pip تلاش کرده PyBullet را از Source کامپایل کند. در این حالت یا باید ابزار C++ Build را نصب کنی و PyBullet را از Source بسازی، یا از یک توزیع آماده مثل Conda استفاده کنی.

پس ما به جای درگیر شدن با نصب کامپایلر c++ از اناکوندا استفاده میکنیم

چون مسیر حرفه ای برای نصب پای بالت همین Conda + Python 3.12 + conda-forge + PyBullet هست

چون در conda-forge واقعاً بسته win-64 برای Python 3.12 وجود دارد؛ بنابراین برای Windows می‌توانیم دقیقاً بگوییم چرا این ترکیب را انتخاب کرده‌ایم.

اما اصلا این جمله بالایی که گفتم یعنی چه؟ میریم به صفحه رسمی بسته PyBullet در Anaconda:

صفحه PyBullet در conda-forge

در آن صفحه قسمت Supported Platforms وجود دارد و win-64 را نشان می‌دهد. همچنین خود صفحه دستور نصب را ارائه می‌کند که با زدن ان نصب اغاز میشود:

conda install conda-forge::pybullet

اما برای توضیحات بیشتر این صفحه:

باید وارد قسمت Files همان صفحه شویم.

فایل‌های PyBullet در conda-forge

آنجا واقعاً این فایل را می‌بینیم:

win-64/pybullet-3.25-py312h3d6c809_5.conda

و ستون Platform آن هم win-64 است. پس این یک مدرک مستقیم است که روی ویندوز نصب میشود.

اصلاً win-64/pybullet-3.25-py312... یعنی چه؟

این قسمت را اگر بفهمی، بخش بزرگی از داستان را فهمیده‌ای.

فایل:

win-64/pybullet-3.25-py312h3d6c809_5.conda

را از چپ بخوانیم:

قسمت اول:

win-64/

یعنی:

این بسته برای Windows 64-bit ساخته شده.


قسمت دوم:

pybullet-3.25

یعنی:

نام بسته: PyBullet
نسخه بسته: 3.25


قسمت سوم:

py312

یعنی:

این Build برای Python 3.12 ساخته شده.

پس کل اسم تقریباً این مفهوم را می‌دهد:

PyBullet 3.25، ساخته‌شده برای Python 3.12 روی Windows 64-bit.

و همین صفحه فایل‌های دیگری هم دارد:

win-64/pybullet-3.25-py310...win-64/pybullet-3.25-py311...win-64/pybullet-3.25-py312...win-64/pybullet-3.25-py313...win-64/pybullet-3.25-py314...

این‌ها واقعاً در لیست Files فعلی conda-forge دیده می‌شوند.

بنابراین وقتی من می‌گویم:

«conda-forge برای Windows 64-bit و Python 3.12 بسته PyBullet دارد»

من از روی همین فایل نتیجه گرفته‌ام:

win-64/pybullet-3.25-py312...

نه از حدس.

حالا اصلاً conda-forge چیست؟

این را هم باید روشن کنیم.

تو سه چیز را نباید با هم قاطی کنی:

Anaconda

یک اکوسیستم/توزیع برای Python و مدیریت Environment و Package است.

Conda

ابزاری است که Environment می‌سازد و Package نصب می‌کند.

مثلاً:

conda create ...conda install ...

conda-forge

یک Channel بزرگ از Packageهای Conda است که توسط جامعه نگهداری می‌شود.

یعنی وقتی می‌نویسیم:

conda install conda-forge::pybullet

تقریباً داریم می‌گوییم:

«Conda، برو بسته PyBullet را از Channel به نام conda-forge پیدا و نصب کن.»

و خود صفحه PyBullet در Anaconda همین دستور را به‌عنوان دستور نصب ارائه می‌کند.

از کجا بفهمم Anaconda من چه Pythonای دارد؟

در واقع سؤال دقیق‌تر این است:

Environment فعلی Anaconda من چه نسخه‌ای از Python دارد؟

چون Conda می‌تواند چند Environment داشته باشد و هر Environment می‌تواند Python متفاوتی داشته باشد.

مثلاً:

Anaconda

├── base
│ └── Python 3.12

├── pybullet
│ └── Python 3.12

└── robotics
└── Python 3.11

به همین دلیل ما برای PyBullet یک Environment جدا می‌سازیم.

قدم ۱: Anaconda Prompt را باز کن

از Start ویندوز جستجو کن: Anaconda Prompt

وقتی باز شد، معمولاً ابتدای خط چیزی شبیه این می‌بینی:

(base) C:\Users\Alireza>

base یعنی الان در Environment اصلی Anaconda هستی.

قدم ۲: این دستور را بزن

python --version

مثلاً اگر جواب بدهد:

Python 3.12.7

یعنی:

Python داخل Environment فعلی Anaconda نسخه 3.12.7 است.

قدم ۳: برای اینکه مطمئن شویم این Python واقعاً متعلق به Anaconda است:

where python

مثلاً ممکن است بدهد:

C:\Users\Alireza\anaconda3\python.exe

این یعنی Pythonای که الان داری اجرا می‌کنی متعلق به Anaconda است.


حالا برویم سراغ نصب واقعی

نکات اموزشی قبل شروع نصب پای بالت با اناکوندا

وقتی Anaconda را نصب می‌کنی، PyBullet خودبه‌خود همراه Anaconda نصب نمی‌شود.

مثلاً تو ممکن است داشته باشی:

Anaconda
└── base
└── Python 3.10

و اصلاً PyBullet نداشته باشی.

بعد خودت می‌گویی:

conda install conda-forge::pybullet

Conda می‌رود package مناسب Environment فعلی را پیدا می‌کند.


پس اگر Anaconda من قدیمی باشد، باید PyBullet را دستی از قسمت Files دانلود کنم؟

نه لازم نیست تو اون سایت کوندا و قسمت فایل ها بری و نصب دستی کنی بلکه آن فایل‌ها بیشتر برای این هستند که ببینی چه Buildهایی واقعاً منتشر شده‌اند.برای نصب عادی، خود Conda باید این کار را انجام دهد.
مثلاً اگر Environment تو Python 3.10 باشد:

conda install conda-forge::pybullet

Conda Solver مشخصات Environment را می‌بیند:

OS = Windows 64-bitPython = 3.10

و از بین packageهای موجود، نسخه سازگار را انتخاب می‌کند.

یعنی اگر Python 3.10 داشته باشم، خودش PyBullet مناسب 3.10 را انتخاب می‌کند

آیا می‌توانم Python Anaconda را به‌روز کنم تا بروزترین پای بالت رو نصب کنه؟

بله. Conda خودش Python را مثل یک package مدیریت می‌کند. مستندات رسمی Conda صراحتاً می‌گوید Python را می‌توان مدیریت و به‌روزرسانی کرد.

مثلاً:

conda update python

یا می‌توانی نسخه مشخصی نصب کنی:

conda install python=3.12

اما این کار پیشنهاد نمیشه

چون تو ممکن است قبلاً پروژه‌هایی در Environmentهای مختلف داشته باشی.

راه حرفه‌ای این است:

base
Python X

├── project1
│ Python 3.10

├── project2
│ Python 3.11

└── pybullet
Python 3.12

A- پس راهکار درست اینه که یه محیط جدید در اناکوندا درست کنیم و تو سایت اناکوندا قسمت فایل بریم و بببینم اخرین نسخه ای از پایتون که پای بالت ور ساپورت میکنه چیه مثلا شاید نوشته باشه win-64/pybullet-3.25-py314hcfc7f4e_5.conda که نوشته برای پایتون 3.14 هم ساپورت میکنه پس میتونی یه محیط جدید تو اناکوندا بسازی و پیاتون 3.14 رو تو اون صب کنی و بعد پای بالت رو نصب کنی تا از اخرین نسخه پایتون که پای بالت رو ساپورت مکنه استفاده کنی


آیا تغییر Python در یک Environment روی Environmentهای دیگر اثر می‌گذارد؟

خیر، اگر Environmentها جدا باشند.

این یکی از مهم‌ترین مزیت‌های Conda است.

مثلاً:

Environment A
Python 3.10
PyBullet 3.25

و:

Environment B
Python 3.12
PyBullet 3.25

هر دو می‌توانند کنار هم باشند.

با این حساب میتوان دو پای بالت مختلف نصب کرد

مثلاً:

Environment A
Python 3.10
PyBullet 3.25

و:

Environment B
Python 3.12
PyBullet 3.25

یا اگر در آینده نسخه دیگری از PyBullet منتشر شود ان را نصب کرد

B – میتوانیم به جای مراجعه به سایت از خود اناکوندا پرامپت بپرسیم چه نسخهه ایی وجود دارد تا یکی رو انتخاب کنیم.

مرحله ۱ — ببینیم PyBullet برای چه Pythonهایی Build دارد


در Anaconda Prompt بزن:

conda search -c conda-forge pybullet

چون سیستم تو Windows است، به‌صورت پیش‌فرض conda search برای platform فعلی جستجو می‌کند؛ مستندات Conda هم همین را توضیح می‌دهند.

اما من ترجیح می‌دهم صریحاً Windows 64-bit را مشخص کنیم:

conda search -c conda-forge "pybullet[subdir=win-64]"

مثلا در جواب ها pybullet 3.25 py311h3e17986_5 conda-forge ینی پایتون 3.11 برای پای بالت 3.25 هست

مرحله 2 — نسخه مناسب برای کل دوره را انتخاب کنیم

اینجا دیگر نباید فقط به PyBullet نگاه کنیم.

مثلاً باید ببینیم نسخه انتخابی با ابزارهایی که احتمالاً در دوره استفاده می‌کنیم سازگار است:

Python
├── PyBullet
├── NumPy
├── SciPy
├── OpenCV
├── Matplotlib
├── Gymnasium
├── Stable-Baselines3
└── PyTorch

یعنی:

Python 3.14 فقط چون جدیدترین نسخه دارای PyBullet است، الزاماً بهترین انتخاب آموزشی نیست.

برای دوره، ما یک نسخه‌ای را انتخاب می‌کنیم که اکوسیستم رباتیک کامل‌تر و کم‌دردسرتری داشته باشد.

مرحله 3 — Environment اختصاصی بسازیم

مثلاً اگر بعد از بررسی تصمیم گرفتیم Python 3.12 مناسب‌ترین گزینه است:

conda create -n pybullet python=3.12

بعد:

conda activate pybullet

بررسی کنیم:

python --version

باید ببینی:

Python 3.12.x

مرحله 4 — PyBullet را داخل همان Environment نصب کنیم.
conda install -c conda-forge pybullet

یا روش رسمی‌تر:

conda install conda-forge::pybullet

بعد تست:

python -c"import pybullet; print(pybullet.__version__)"

*********************

می‌خواهیم یک Environment کاملاً جدا و مخصوص PyBullet بسازیم.

فرض می‌کنیم برای دوره تصمیم گرفته‌ایم:

Windows 64-bitPython 3.12PyBullet

چون برای این ترکیب، فایل واقعی زیر را در conda-forge داریم:

win-64/pybullet-3.25-py312...

مرحله ۱ — Anaconda Prompt

بازش کن.

باید چیزی شبیه این ببینی:

(base) C:\Users\Alireza>

مرحله ۲ — ببین Python فعلی چیست

بزن:

python --version

مثلاً:

Python 3.12.?

بعد:

where python

تا مطمئن شویم Python از Anaconda می‌آید.


مرحله ۳ — Environment جدید بساز

حالا:

conda create -n pybullet python=3.12

اینجا داریم به Conda می‌گوییم:

create ↓یک Environment بساز-n pybullet ↓اسمش را pybullet بگذارpython=3.12 ↓داخل آن Python 3.12 نصب کن

Conda ممکن است بپرسد:

Proceed ([y]/n)?

بزن:

y

مرحله ۴ — وارد Environment شو

بعد از تمام شدن نصب:

conda activate pybullet

حالا ابتدای خط باید تبدیل شود به:

(pybullet)

مثلاً:

(pybullet) C:\Users\Alireza>

این یعنی:

الان داخل Environment مخصوص PyBullet هستی.


مرحله ۵ — مطمئن شو Python درست است

حالا بزن:

python --version

باید:

Python 3.12.x

بدهد.

بعد:

where python

باید مسیری شبیه این بدهد:

...\anaconda3\envs\pybullet\python.exe

یعنی Python مورد استفاده ما دیگر Python اصلی Windows یا Python قبلی تو نیست.

بلکه:

Anaconda   ↓pybullet Environment   ↓Python 3.12

مرحله ۶ — PyBullet را نصب کن

حالا که داخل Environment هستیم:

conda install conda-forge::pybullet

این دقیقاً همان دستور رسمی‌ای است که صفحه PyBullet در Anaconda/conda-forge ارائه می‌کند.

Conda خودش Package مناسب Environment را پیدا می‌کند.

یعنی ما نباید دستی برویم فایل py312 را دانلود کنیم.

Conda این کار را برایمان انجام می‌دهد.


مرحله ۷ — چرا Conda می‌فهمد کدام فایل را بگیرد؟

این قسمت خیلی مهم است.

تو داری:

Windows 64-bitPython 3.12

و conda-forge دارد:

win-64/pybullet-3.25-py312...

پس Solver مربوط به Conda می‌تواند بسته‌ای را انتخاب کند که با مشخصات Environment تو سازگار است.

تو لازم نیست بنویسی:

pybullet-3.25-py312h3d6c809_5.conda

فقط می‌نویسی:

conda install conda-forge::pybullet

مرحله ۸ — تست کنیم واقعاً نصب شده

بعد از نصب:

python -c"import pybullet; print(pybullet.__version__)"

اگر نسخه‌ای مثل:

3.25

دیدی، یعنی PyBullet نصب شده.


مرحله ۹ — یک تست واقعی‌تر

این را بزن:

python -c"import pybullet as p; print(p.connect(p.DIRECT)); p.disconnect()"

اگر:

0

دیدی، یعنی Python توانسته PyBullet را Load کند و به Physics Server وصل شود.


حالا کل مسیر را برای دوره‌ات این‌طور آموزش بده

Anaconda Prompt       ↓بررسی Pythonpython --version       ↓ساخت Environmentconda create -n pybullet python=3.12       ↓فعال‌سازیconda activate pybullet       ↓بررسی Pythonpython --version       ↓نصب PyBulletconda install conda-forge::pybullet       ↓تستimport pybullet

و مهم‌تر از همه، وقتی دانشجو بپرسد:

«چرا Python 3.12؟»

جواب تو این نیست که:

«چون PyBullet Python 3.12 می‌خواهد.»

بلکه:

«چون در زمان تهیه دوره، در Channel رسمی conda-forge برای PyBullet، یک بسته win-64 که برای Python 3.12 ساخته شده (py312) وجود دارد. بنابراین این ترکیب را به‌عنوان محیط مرجع دوره انتخاب کرده‌ایم.»

این جواب دقیق و قابل دفاع است.

این cp311 یعنی چی؟

این یکی از چیزهایی است که در دوره‌ات باید خیلی خوب آموزش بدهیم.

مثلاً:

pybullet-3.2.7-cp311-cp311-...

قسمت:

cp311

یعنی:

CPython 3.11

و:

cp310

یعنی:

CPython 3.10

پس وقتی می‌بینی:

cp311

ذهن تو باید بگوید:

این فایل برای Python 3.11 ساخته شده.

این موضوع برای کتابخانه‌هایی که بخش native/binary دارند بسیار مهم است.


اما یک نکته بسیار مهم درباره نسخه فعلی

در PyPI فعلی PyBullet 3.2.7، فایل‌های wheel قابل مشاهده برای Linux شامل Pythonهای مختلف هستند، اما صفحه فعلی PyPI الزاماً همه ترکیب‌های Windows/Python را به شکل یک جدول ساده نشان نمی‌دهد.

در عوض، conda-forge برای PyBullet نسخه 3.25 فایل‌های Windows win-64 را برای Pythonهای مختلف از جمله:

Python 3.10Python 3.11Python 3.12Python 3.13Python 3.14

دارد.

بنابراین برای دوره‌مان نباید از روی حدس بگوییم:

«حتماً Python 3.11 نصب کن.»

بلکه باید یاد بگیریم:

نسخه Python + نسخه PyBullet + روش نصب را با هم بررسی کنیم.


مرحله ۳ — اول ببینیم Python فعلی تو چیست

چون الان Windows هستی، برو داخل:

CMD

کلیدهای:

Win + R

را بزن.

بنویس:

cmd

Enter.

حالا این دستور را بزن:

python --version

یا:

python -V

مثلاً ممکن است خروجی بدهد:

Python 3.12.4

یا:

Python 3.13.5

مرحله ۴ — یک دستور مهم‌تر

این را هم بزن:

python

ممکن است چیزی شبیه این ببینی:

Python 3.12.4 ...[MSC v.1938 64 bit (AMD64)] on win32>>>

اینجا چند چیز مهم را می‌توانیم بفهمیم:

Python 3.12.4

یعنی نسخه Python.

و:

64 bit

یعنی Python تو ۶۴ بیتی است.

برای خارج شدن:

exit()

مرحله ۵ — ببینیم دقیقاً کدام Python اجرا می‌شود

این دستور را بزن:

where python

این دستور خیلی مهم است.

مثلاً ممکن است بگوید:

C:\Users\Ali\AppData\Local\Programs\Python\Python312\python.exe

یا ممکن است چند مسیر بدهد:

C:\Users\Ali\anaconda3\python.exeC:\Users\Ali\AppData\Local\Programs\Python\Python312\python.exe

اگر چند Python داشته باشی، همین موضوع می‌تواند باعث سردرگمی در PyCharm و نصب کتابخانه‌ها شود.


مرحله ۶ — pip چیست؟

حالا یکی از مهم‌ترین مفاهیم دوره را یاد می‌گیریم.

Python خودش یک زبان برنامه‌نویسی است.

ولی PyBullet جزو خود Python نیست.

برای نصب کتابخانه‌های Python معمولاً از pip استفاده می‌کنیم.

مثلاً:

pip install pybullet

یعنی:

pip برو PyBullet را دریافت و نصب کن.

اما روش حرفه‌ای‌تر این است:

python -m pip install pybullet

من برای دوره‌ای که می‌سازی این روش دوم را ترجیح می‌دهم.

چرا؟

چون اگر چند Python روی سیستم داشته باشی، این:

python -m pip

مشخص می‌کند که pip مربوط به همان Pythonای است که با python اجرا می‌کنی.


مرحله ۷ — قبل از نصب PyBullet

اول این را بزن:

python -m pip --version

مثلاً:

pip 25.x from C:\...\Python312\Lib\site-packages\pip

اینجا حتی می‌توانی بفهمی pip متعلق به کدام Python است.


مرحله ۸ — pip را به‌روز کنیم

حالا:

python -m pip install --upgrade pip

صبر کن تا تمام شود.

اگر در پایان چیزی شبیه:

Successfully installed ...

دیدی، خوب است.


مرحله ۹ — نصب PyBullet

حالا اصل کار:

python -m pip install pybullet

را اجرا کن.

راهنمای رسمی خود Bullet هم نصب PyBullet با pip را روش ساده نصب معرفی می‌کند.

اگر همه چیز درست باشد، باید نصب تمام شود.


مرحله ۱۰ — ببینیم واقعاً نصب شده یا نه

این را بزن:

python -m pip show pybullet

باید اطلاعاتی شبیه این ببینی:

Name: pybulletVersion: 3.2.7...

مرحله ۱۱ — مهم‌ترین تست

حالا بنویس:

python

و داخل Python:

importpybullet

اگر هیچ خطایی نداد:

PyBullet نصب شده است.

حالا:

print(pybullet.__version__)

اگر نسخه را نشان داد، یعنی کتابخانه واقعاً قابل استفاده است.


مرحله ۱۲ — اولین تست گرافیکی

بعد از اینکه نصب موفق شد، یک فایل بساز:

test_pybullet.py

داخلش:

importpybulletaspimporttimephysicsClient=p.connect(p.GUI)whileTrue:p.stepSimulation()time.sleep(1/240)

اجراش کن.

اگر پنجره PyBullet باز شد، یعنی:

Python   ↓PyBullet   ↓Bullet Physics   ↓GUI

همه درست کار می‌کنند.


اما فعلاً این کار را نکن!

هنوز نمی‌خواهم برویم سراغ Anaconda.

اول همین نصب معمولی را انجام بده.

چون هدف ما فقط نصب نیست؛ می‌خواهم در همین مرحله بفهمی:

Python چیست؟        ↓نسخه Python چیست؟        ↓pip چیست؟        ↓PyPI چیست؟        ↓Package چیست؟        ↓PyBullet چیست؟        ↓نسخه PyBullet چیست؟        ↓Python و PyBullet چطور با هم سازگار می‌شوند؟        ↓نصب PyBullet        ↓import        ↓اجرای اولین شبیه‌سازی

بعد از آن می‌رویم سراغ PyCharm.

و بعد:

Python معمولی      ↓venv      ↓PyCharm Interpreter      ↓PyBullet

و در مرحله بعد:

Anaconda      ↓conda environment      ↓Python version      ↓PyBullet      ↓PyCharm + Conda

این ترتیب برای دوره آموزشی هم خیلی بهتر است، چون هنرجو فقط دستور حفظ نمی‌کند؛ می‌فهمد چرا هر دستور را اجرا می‌کند.

حالا فقط یک کار انجام بده:

در CMD این سه دستور را یکی‌یکی بزن:

python --version
where python
python -m pip --version

خروجی هر سه را همینجا بفرست.

من بر اساس Python واقعی خودت، مرحله بعد را می‌گویم و هم‌زمان از همین الان محتوای فصل «نصب PyBullet» دوره‌ات را اصولی جلو می‌بریم.

Scroll to Top