ScalaPy makes it easy to use Python libraries from Scala code. With a simple API, automatic conversion between Scala and Python types, and optional static typing, ScalaPy scales from hobby projects to production systems.
First, add ScalaPy to your SBT build:
You'll then need to add the Python native libraries to your project and configure SBT to run your code in a separate JVM instance.
If you'd like to use Scala Native, follow the instructions there to create a project with Scala Native
0.4.0-M2. Then, add the following additional configuration to your SBT build to link the Python interpreter.
Now that ScalaPy is installed, let's start with a simple example. ScalaPy offers a dynamically typed API that's great for making quick Python calls with little ceremony. First, we can use the Python
len function to calculate the length of a list. Using
py.Dynamic.global, you can access any members of the global scope.
Here, we took a Scala
List, converted it to a Python list, sent it to the
len function, and got back a Python number.
To convert Python values back into Scala, we use the
.as method and pass in the type we want.
ScalaPy uses by default python3, python3.7, python3.7m. If you use an other version of python, you should define the variable