NetLogo banner

 Home
 Download
 Help
 Resources
 Extensions
 FAQ
 NetLogo Publications
 Contact Us
 Donate

 Models:
 Library
 Community
 Modeling Commons

 User Manuals:
 Web
 Printable
 Chinese
 Czech
 Farsi / Persian
 Japanese
 Spanish

  Donate

NetLogo Models Library:
Code Examples/Extensions Examples/py

(back to the library)

Python Basic Example

[screen shot]

Note: If you download the NetLogo application, every model in the Models Library is included.

WHAT IS IT?

This model shows how to use NetLogo's py extension to interact with Python. This extension allows users with Python installed on their computer to write Python code in their NetLogo model and to share data back and forth between the Python and NetLogo.

THINGS TO NOTICE

First, the model sets up Python with the py:setup and py:python primitives. The default python found on the system will be used. This step is required for models using the Python extension. If you do not have Python installed on your computer, you will need to install it on your computer outside of NetLogo. Once the Python environment is setup, it's available until the model is closed.

This model uses a few basic Python packages, sys, math, and os, to get information and do calculations that would be difficult or impossible in NetLogo. The packages are made available by using py:run to execute the Python import commands. The key to interacting with the packages is using py:set to set a variable value and pass data into the Python extension and py:runresult to get data back out of Python to use in NetLogo.

THINGS TO TRY

Check out the Python math package documentation and see if there are any other calculations it can do that NetLogo doesn't natively support and try to make them work.

EXTENDING THE MODEL

While the uses demonstrated are convenient when needed, the real power of Python is in its scientific packages, like numpy, pandas, and sklearn and more.

RELATED MODELS

There is a bundle of other Python extension demo models, py-demo-models.zip, available on the Python extension site.

(back to the NetLogo Models Library)