Installing mxpy
How to install mxpy
This page describes how to install mxpy (the CLI tool). The recommended way to install mxpy is by using the mxpy-up
facility.
mxpy is currently supported on Linux and MacOS. Some of its features might work on Windows as well, although using mxpy on Windows is neither recommended, nor supported at this time.
Prerequisites
Before installing mxpy, please make sure you have a working Python 3 environment:
- 3.8 or later on Linux and MacOS
Smart contracts written in C require the ncurses library routines for compiling. Install them using the following:
For Linux:
sudo apt install libncurses5
For MacOS:
brew install ncurses
Install using mxpy-up (recommended)
In order to install mxpy using the mxpy-up
installation script, run the following commands in a terminal:
wget -O mxpy-up.py https://raw.githubusercontent.com/multiversx/mx-sdk-py-cli/main/mxpy-up.py
python3 mxpy-up.py
This will create a light Python virtual environment (based on venv
) in ~/multiversx-sdk/mxpy-venv
. Since mxpy v6.0.0
we do not alter the $PATH
variable.
You'll need to manually include ~/multiversx-sdk
in your $PATH
variable (by editing the appropriate .profile
file) as done bellow:
export PATH="$HOME/multiversx-sdk:$PATH"
Troubleshooting and other notes
On Ubuntu 20.04, if you receive the error: invalid command 'bdist_wheel'
- run the following command, then retry mxpy-up:
pip3 install wheel
python3 mxpy-up.py
On MacOS, you can switch to Python 3.8 as follows:
brew info python@3.8
brew unlink python
brew link --force python@3.8
python3 --version
Install without mxpy-up
If you'd like to install without relying on the easy installation script, please read this section. Otherwise, feel free to skip it.
Make sure you also have pip3 installed.
Prepare PATH
In order to have the command mxpy available in your shell after install, make sure you adjust the PATH
environment variable as described below:
On Linux in ~/.profile
:
export PATH="$HOME/.local/bin:$PATH"
On MacOS in ~/.bash_profile
or ~/.zshrc
if you’re using zsh
:
export PATH=$HOME/Library/Python/3.8/bin:${PATH}
In the snippet above, replace 3.8
with your actual MAJOR.MINOR
version of Python. This can be found by running:
python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')"
You may need to restart your user session for these changes to take effect.
Install and smoke test
In order to install mxpy, issue the following command:
pip3 install --user --upgrade --no-cache-dir multiversx-sdk-cli
Troubleshooting
If you encounter encoding-related issues at installation time, such as: UnicodeDecodeError: 'ascii' codec can't decode byte
, then please set PYTHONIOENCODING
before running the installation command:
PYTHONIOENCODING=utf8 pip3 install --user --upgrade --no-cache-dir mxpy