How to Install SimPy (It Takes 10 Seconds)
The installation process for SimPy is not exactly complicated. Open a terminal. Run one command. Done.
The Command
pip install simpy
That's it. No registration. No licence key. No activation wizard. No sales call to schedule.
Verifying the Installation
Open Python and try this:
import simpy
print(simpy.__version__)
If you see a version number, you're ready to simulate.
Common Variations
Using pip3 (macOS/Linux)
If you have both Python 2 and 3 installed:
pip3 install simpy
In a Virtual Environment (Recommended)
python -m venv myproject
source myproject/bin/activate # On Windows: myproject\Scripts\activate
pip install simpy
Using conda
conda install -c conda-forge simpy
In a Jupyter Notebook
!pip install simpy
Requirements
SimPy requires Python 3.8 or higher. That's the only dependency. No Java runtime. No C++ redistributables. No mysterious DLLs.
What Gets Installed
SimPy is pure Python. When you install it, you get:
- The core SimPy library
- That's it
The package is small, fast to install, and has no external dependencies. Compare that to commercial simulation software that requires hours of installation, gigabytes of disk space, and the patience of a saint.
Installing Extra Tools
While SimPy handles the simulation, you'll probably want:
pip install simpy matplotlib pandas numpy
- matplotlib - For visualising results
- pandas - For data manipulation and analysis
- numpy - For statistical distributions and random numbers
Troubleshooting
"pip is not recognised"
Python isn't in your system PATH. Either:
1. Reinstall Python and tick "Add to PATH"
2. Use the full path: python -m pip install simpy
"Permission denied"
Use --user flag:
pip install --user simpy
Or run as administrator (not recommended for regular use).
"No matching distribution found"
Your Python version is too old. SimPy needs 3.8+. Check with:
python --version
Your First Simulation
Now that SimPy is installed, test it with the simplest possible simulation:
import simpy
def clock(env, name, tick):
while True:
print(f"{name} ticks at {env.now}")
yield env.timeout(tick)
env = simpy.Environment()
env.process(clock(env, "Fast", 1))
env.process(clock(env, "Slow", 2))
env.run(until=5)
Run it. Watch the output. You've just built your first discrete-event simulation.
Next Steps
Installation done? Time to understand the fundamentals:
Ready to Master SimPy?
Get started with simulation in Python using SimPy with my comprehensive guide. It covers everything you need to know to build your first simulation models.
Get the SimPy Guide