This page shows you how to set up your development environment to use MediaPipe Tasks in your Python applications.
Supported platforms and versions
Building applications with MediaPipe Tasks requires the following development environment resources:
- OS:
- Desktop: Windows, Mac, Linux
- IoT: Raspberry OS 64-bit
- Python: Supports version 3.9 and later versions
- PIP: version 20.3+
Developer environment setup
Before running a MediaPipe task on a Python application, install the MediaPipe package.
$
python
-m
pip
install
mediapipe
After installing the package, import it into your development project.
import
mediapipe
as
mp
MediaPipe Tasks dependencies
MediaPipe Tasks provides three prebuilt libraries for vision, text, audio. Depending on the MediaPipe Task used by the app, import the vision, text, or audio library into your development project.
Vision tasks
The MediaPipe Tasks vision module contains tasks that handle image or video inputs. To import the MediaPipe Tasks vision library, import the following dependency to your into your development project.
from
mediapipe.tasks.python
import
vision
Text tasks
The MediaPipe Tasks text module contains tasks that handle string inputs.To import the MediaPipe Tasks text library, import the following dependency to your into your development project.
from
mediapipe.tasks.python
import
text
Audio tasks
The MediaPipe Tasks audio module contains tasks that handle sound inputs. To import the MediaPipe Tasks audio library, import the following dependency to your into your development project.
from
mediapipe.tasks.python
import
audio
BaseOptions configuration
The BaseOptions allow for general configuration of MediaPipe Task APIs.
| Option name | Description | Accepted values |
|---|---|---|
model_asset_buffer
|
The model asset file contents. | Model content as a byte string |
model_asset_path
|
The path of the model asset to open and map into memory. | File path as a string |
Packaging Python Tasks apps with PyInstaller
When packaging a Python Tasks app with PyInstaller, model files such as .task
bundles are not included automatically. If your app uses BaseOptions(model_asset_path=...)
, include the model file in the PyInstaller
bundle and resolve its path at runtime.
For example, use a helper that checks for PyInstaller's sys._MEIPASS
directory:
import
os
import
sys
def
resource_path
(
relative_path
:
str
)
-
> str
:
base_path
=
getattr
(
sys
,
"_MEIPASS"
,
os
.
path
.
abspath
(
"."
))
return
os
.
path
.
join
(
base_path
,
relative_path
)
Then pass the resolved model path to BaseOptions
:
from
mediapipe.tasks
import
python
from
mediapipe.tasks.python
import
vision
model_path
=
resource_path
(
"pose_landmarker.task"
)
base_options
=
python
.
BaseOptions
(
model_asset_path
=
model_path
)
options
=
vision
.
PoseLandmarkerOptions
(
base_options
=
base_options
)
pose_landmarker
=
vision
.
PoseLandmarker
.
create_from_options
(
options
)
Bundle the model file and collect MediaPipe package files when building with PyInstaller:
pyinstaller
app.py
\
--add-data
"pose_landmarker.task:."
\
--collect-all
mediapipe
\
--hidden-import
mediapipe.tasks.c
On macOS or Linux, the --add-data
separator is :
. On Windows, use ;
. And for macOS desktop apps, add --windowed
to create an .app
bundle:
Troubleshooting
For help with technical questions related to MediaPipe, visit the discussion group or Stack Overflow for support from the community. To report bugs or make feature requests, file an issue on GitHub .
For help setting up your Python development environment, visit the Python developer's guide .

