1
0
mirror of https://github.com/oceanprotocol/docs.git synced 2024-11-26 19:49:26 +01:00
docs/developers/ocean.py/install.md

3.4 KiB
Raw Blame History

Install

Lets start interacting with the python library by firstly installing it & its prerequisites.

From the adventurous Python 3.8.5 all the way up to Python 3.10.4, ocean.py has got your back! 🚀

While ocean.py can join you on your Python 3.11 journey, a few manual tweaks may be required. But worry not, brave explorers, we've got all the juicy details for you below! 📚

⚠️ Make sure that you have autoconf, pkg-config and build-essential or their equivalents installed on your host.

Installing ocean.py

ocean.py is a Python library on pypi as ocean-lib. So after you have completed the prerequisites step, let's create a new console for library installation:

# Create your working directory
mkdir my_project
cd my_project

# Initialize virtual environment and activate it. Install artifacts.
# Make sure your Python version inside the venv is >=3.8.
# Anaconda is not fully supported for now, please use venv
python3 -m venv venv
source venv/bin/activate

# Avoid errors for the step that follows
pip install wheel

# Install Ocean library.
pip install ocean-lib

Potential issues & workarounds

Issue: M1 * coincurve or cryptography

  • If you have an Apple M1 processor, coincurve and cryptography installation may fail due missing packages, which come pre-packaged in other operating systems.
  • Workaround: ensure you have autoconf, automake and libtool installed as it is mentioned in the prerequisites, e.g. using Homebrew or MacPorts.

Issue: MacOS “Unsupported Architecture”

  • If you run MacOS, you may encounter an “Unsupported Architecture” issue.
  • Workaround: install including ARCHFLAGS: ARCHFLAGS="-arch x86_64" pip install ocean-lib. Details.

To install ocean-lib using Python 3.11, run pip install vyper==0.3.7 --ignore-requires-python and sudo apt-get install python3.11-dev before installing ocean-lib. Since the parsimonious dependency does not support Python 3.11, you need to edit the parsimonious/expressions.py to import getfullargspec as getargsspec instead of the regular import. These are temporary fixes until all dependencies are fully supported in Python 3.11. We do not directly use Vyper in ocean-lib.

ocean.py uses Brownie

Let's dive deeper into the Ocean world! 💙 Did you know that Ocean and Brownie are like best buddies? When you installed Ocean (ocean-lib pypi package) earlier, it automatically took care of installing Brownie (eth-brownie package) too. Talk about a dynamic duo! 🦸‍♀️🦸‍♂️

ocean.py treats each Ocean smart contract as a Python class, and each deployed smart contract as a Python object. We love this feature, because it means Python programmers can treat Solidity code as Python code! 🤯

Helpful resources

Oh, buoy! 🌊🐙 When it comes to installation, ocean.py has you covered with a special README called "install.md". It's like a trusty guide that helps you navigate all the nitty-gritty details. So, let's dive in and ride the waves of installation together! 🏄‍♂️🌊


Or if you prefer a video format, you can check this tutorial on Youtube

{% embed url="https://www.youtube.com/watch?v=mbniGPNHE_M" %} Install ocean.py {% endembed %}