Files
OpenBB/website/content/terminal/installation/source.md
tehcoderer b90cbc98d8 Squashed commit of the following:
commit 70f70a81b4
Author: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
Date:   Thu Aug 3 12:43:55 2023 +0100

    Hotfix/sdk py38 (#5279)

    * replace unsupported Annotated, MappingProxyType, is_annotated_dc

    * fix package builder

commit 61afffb1f5
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Aug 2 16:56:40 2023 +0100

    typing

commit 0b3b30eccc
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Aug 2 16:51:07 2023 +0100

    rename exception for better localization

commit 49fe650117
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Aug 2 16:43:54 2023 +0100

    update provider readme

commit 1e0a3c36c4
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Aug 2 16:43:19 2023 +0100

    update provider readme

commit 9a1b4a8fba
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Aug 2 16:42:02 2023 +0100

    update provider readme

commit 6b93a603dc
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Aug 2 16:37:54 2023 +0100

    update provider readme

commit 13d95452c3
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Aug 2 15:50:20 2023 +0100

    to follow the convention

commit e3d65b502f
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Aug 2 14:49:19 2023 +0100

    filter

commit cc5a334258
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Aug 2 14:42:14 2023 +0100

    cleanup filters

commit be864d01f3
Author: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
Date:   Wed Aug 2 14:17:20 2023 +0100

    Feature/provider refactoring (#5266)

    * remove comment

    * replace registry description

    * black and add some todos

    * remove unused var

    * allow description and move provider to title

    * fix the data field descriptions

    * refactor globalnews

    * added `"limit"` to metadata descriptions

    * fix cpi command and refactor

    * refactored `AnalystEstimates`

    * add concat param

    * refactored `AvailableIndices` for `economy.available_indices`

    * sort and set index to date

    * place it inside exception

    * move literals to core

    * rename descriptions dict

    * add descriptions to cpi data

    * change description

    * black

    * refactored `CompanyOverview` for `stocks.fa.overview`

    * Updated `DATA_DESCRIPTIONS` in provider metadata

    * Updated `symbol` description in `DATA_DESCRIPTIONS`

    * fix stock_news alias

    * pass standard limit

    * fix stock news

    * fix to datframe

    * rebuild python interface

    * refactored `CryptoEOD` for `crypto.load`

    * added Field descriptions

    * fix polygon stock_news

    * fix stock_news data

    * ruff

    * refactored `DividendCalendar` for `stocks.fa.cal`

    * refactored `EarningsCalendar` for `stocks.fa.cal`

    * refactored `EarningsCallTranscript` for `stocks.fa.transcript`

    * refactored `ExecutiveCompensation` for `stocks.fa.comp`

    * first round, refactor registry, executor, map

    * ruff

    * Allow alias in the provider models for provider specific params

    * Updated stock news to use alias in query

    * small fixes

    * fix interface bug

    * black

    * exceptions and typing

    * ruff

    * fix docstring

    * sort providers

    * push static assets without docstrings

    * date Field and optional dates params in `CryptoEOD` for fmp and polygon

    * refactored `ForexEOD` for `forex.load`

    * add comment

    * refactored `ForexPairs` and added Polygon provider

    * removed `_price` models from fmp and polygon

    * Updated `economy.index` to use `MajorIndicesEOD`

    * removed `_price` from sdk models

    * refactored `MajorIndicesEOD` for `economy.index`

    * refactored `StockEOD` for `stocks.load`

    * regenerate sdk

    * ruff

    * fix bug with global_news

    * typing

    * add docstrings to registry map

    * update docstrings

    * add executor query arg

    * follow convention

    * docstring

    * inject provider interface instead

    * doc

    * safer this way

    * docs

    * add abstractmethod decorator

    * add explicit fetcher property model_name

    * remove mode_name prop

    * get model name from query params

    * force extra params or data to be optional

    * replace fetcher list by fetcher dict and black

    * explicit depps in prov interface

    * explicit depps in prov interface

    * no formatted creds

    * no formatted creds

    * dep injection

    * dep injection

    * private methods

    * just verify credentials

    * docstring

    * typing and cut doc

    * typing

    * typing

    * typing

    * no overkill

    * ruff

    * don't block if model not found, just warn

    * don't block if model not found, just warn

    * don't block if model not found, just warn

    * empty list if creds None

    * check creds before request

    * just return the data

    * typing

    * move query params

    * ruff

    * move queryparams

    * move queryparams

    * move queryparams

    * fix a bunch o polygon models

    * ruff

    * partial fix fmp models

    * ruff

    * refactor more fmps

    * create dict by alias

    * refactor more fmp endpoints

    * bug

    * add params to transform query

    * ruff

    * fix fmp bugs

    * has to be annotation

    * rewrite static

    * typing

    * append return type to map

    * support return for generic data type

    * remove return type for openbb provider

    * add todo

    * fix small fred typing error

    * add more return type info

    * better message

    * handle multiple types of data (the fetcher should declare them later)

    * add comment

    * ruff

    * handle returns with generic for now (check juan solution)

    * fix bug with generic

    * fix fmp fetchr dict

    * fill return type in the provider lib for docstrings

    * polygon stock news

    * Update economy_router.py (#5254)

    * remove return type stuff

    * adapt cpi and overview

    * rewrite python interface

    * fix to_dataframe

    * limit stocks eod output

    * rename method

    * mypy

    * mypy

    * mypy chart style

    * mypy provider

    * mypy ignores

    * mypy credentials

    * Added Statements Growth endpoints from FMP

    * account mypy fix

    * privatize account method

    * one more mypy

    * remove mypy ignore

    * rename private method

    * Linting

    * Docstring generation

    * Linting

    * move provider.py into __init__.py

    * add default to required_credentials -> None

    * refactored `KeyExecutives` for `stocks.fa.mgmt`

    * refactored `HistoricalEmployees` for `stocks.fa.emp`

    * provider docstring

    * docstring

    * refactored `HistoricalStockSplits` for `stocks.fa.split`

    * standardised date in stockeod

    * refactored ``InstitutionalOwnership` for `stocks.fa.own`

    * removed unused imports

    * add `check_fields=False` in `@validator`

    * historical dividens

    * remove unused helper

    * move single used helpers to where they are used

    * move single used helpers to where they are used

    * move single used helpers to where they are used

    * standardise date, vwap in crypto eod and forex eod

    * rename __commands__ to __extensions__

    * change coverage separator

    * the map cannot change sep

    * sry

    * sry again

    * remove comment

    * refactored `MajorIndicesConstituents` for `economy.const`

    * add some descriptions about provider

    * refactored `PriceTargetConsensus` for `stocks.fa.pt`

    * refactored `PriceTarget` for `stocks.fa.pta`

    * refactored `RevenueBusinessLine` for `stocks.fa.revseg`

    * change metadata file name

    * docstring

    * remove unecessary arg

    * ruff & black

    * refactored `RevenueGeographic` for `stocks.fa.revgeo`

    * refactored `RiskPremium` for `economy.risk`

    * refactored `SECFilings` for `stocks.dd.sec`

    * refactored `ShareStatistics` for `stocks.fa.shrs`

    * refactored `StockInsiderTrading` for `stocks.fa.ins`

    * peers

    * stock splits

    * refactored `KeyMetrics` for `stocks.fa.metrics`

    * refactored `StockMultiples` for `stocks.multiples`

    * refactor income statement

    * rebuild

    * fmp balance

    * added `StocksOwnership` to `stocks.fa.own`

    * added `InstitutionalOwnership` to `stocks.fa.ins_own`

    * refactored `StocksOwnership` for `stocks.fa.own`

    * cleanup

    * refactored `TreasuryRates` for `fixedincome.treasury`

    * reorder balance items

    * fix polygon bs

    * refactored `IncomeStatement` for `stocks.fa.balance`

    * refactored base and types

    * added static files

    * cleanup

    * cleanup

    * refactored `CashFlowStatement` for `stocks.fa.cash`

    * added `stocks/fa` static file

    * black and ruff

    ---------

    Co-authored-by: Pratyush Shukla <ps4534@nyu.edu>
    Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>

commit 2066d7d4be
Merge: fe1073da09 07537199af
Author: Henrique Joaquim <h.joaquim@campus.fct.unl.pt>
Date:   Wed Aug 2 05:37:20 2023 +0100

    Merge branch 'develop' into feature/openbb-sdk-v4

commit 07537199af
Author: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
Date:   Tue Aug 1 17:27:59 2023 +0100

    Move hub api keys ts (#5267)

    * move hub api keys ts

    * json instead

    * update contributing.md

    * Update all_api_keys.json

    ---------

    Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt>

commit ae91a3f9b9
Author: teh_coderer <me@tehcoderer.com>
Date:   Tue Aug 1 11:05:29 2023 -0500

    Hotfix  `economy/overview` rates displaying as dates (#5269)

    * fix: `economy/overview` rates displaying as dates

    * Fix Test

    ---------

    Co-authored-by: James Maslek <jmaslek11@gmail.com>

commit 3b5fc53cc7
Author: Danglewood <85772166+deeleeramone@users.noreply.github.com>
Date:   Tue Aug 1 06:41:21 2023 -0700

    Adds details/image for installing C++ Build Tools (#5268)

    * Adds details/image for installing C++ Build Tools

    * Update installation_updates.md with screenshots

    * Update installation_updates.md

    Screenshots for MS C++ Build Tools

commit fe1073da09
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Tue Aug 1 12:29:42 2023 +0100

    only allow setup for allowed system fields

commit c8f82e1f8f
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Tue Aug 1 12:04:16 2023 +0100

    reorder system settings attrs

commit 21c69a510f
Merge: 379a5518fa d212a8e270
Author: Theodore Aptekarev <aptekarev@gmail.com>
Date:   Mon Jul 31 20:17:30 2023 +0300

    Merge branch 'develop' into feature/openbb-sdk-v4

commit d212a8e270
Author: Danglewood <85772166+deeleeramone@users.noreply.github.com>
Date:   Mon Jul 31 09:05:22 2023 -0700

    hotfix/gdp-units - better GDP units (#5262)

    * better GDP units

    * mypy

    * remove not needed dict

    * test_oecd_view.py

    * test_oecd_model.py

commit dc30ab3d36
Author: teh_coderer <me@tehcoderer.com>
Date:   Fri Jul 28 21:13:42 2023 -0500

    Hotfix/ locking when deploying streamlit app (#5261)

    * fix locking when deploying streamlit app

    * Update streamlit_run.py

    * Update streamlit_run.py

commit 379a5518fa
Author: hjoaquim <h.joaquim@campus.fct.unl.pt>
Date:   Fri Jul 28 10:00:39 2023 +0100

    small comment on show() implementation

commit 849e6134ee
Merge: 27e1728027 73348c0872
Author: Theodore Aptekarev <aptekarev@gmail.com>
Date:   Thu Jul 27 19:23:10 2023 +0300

    Merge branch 'develop' into feature/openbb-sdk-v4

commit 27e1728027
Merge: afe4c480a2 41d1359202
Author: Henrique Joaquim <h.joaquim@campus.fct.unl.pt>
Date:   Thu Jul 27 15:04:19 2023 +0100

    Merge branch 'develop' into feature/openbb-sdk-v4

commit afe4c480a2
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Jul 26 14:33:37 2023 +0100

    fix comment

commit 531fa104c8
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Jul 26 14:32:00 2023 +0100

    rename method and add description

commit cc1a84b4d0
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Jul 26 13:15:55 2023 +0100

    change method description

commit ff31d9ab87
Author: Diogo Sousa <montezdesousa@gmail.com>
Date:   Wed Jul 26 12:52:54 2023 +0100

    check sdk token expiration on login
2023-08-04 14:44:09 -04:00

9.4 KiB
Vendored

title, sidebar_position, description, keywords
title sidebar_position description keywords
Source 3 This section provides steps to install the OpenBB Terminal from source. This installation type supports Windows, macOS and Linux systems.
installation
installer
install
guide
mac
windows
linux
python
github
macos
how to
explanation
openbb terminal
pypi
miniconda
git
c++
rosetta2
libomp
vcxsrv
gtk

import HeadTitle from '@site/src/components/General/HeadTitle.tsx';

This section provides steps to install the OpenBB Terminal and SDK from source. This installation type supports Windows, macOS and Linux systems. Before starting the installation process, make sure the following pieces of software are installed.

Miniconda Miniconda is a Python environment and package manager. It is required for installing certain dependencies.

Go here to find the download for your operating system or use the links below:

To verify if Miniconda is installed on the system, open the command line and run the following command:

conda --version

If Miniconda is installed, a version number will be displayed, for example:

conda 23.1.0

There is a good chance the version of Conda is not current. Update it with the command below:

conda update -n base -c conda-forge conda
Git

Check to verify if Git is installed by running the following command:

git --version

Which will print something like this:

git version 2.31.1

If Git is not installed, install it now from conda by running:

conda install git

Or follow the instructions here to install it.

Microsoft C++ Build Tools (Windows only)

Use the instructions here to install or update Microsoft C++ Build Tools.

image

image

Rosetta2 (Apple Silicon only)

Install Rosetta from the terminal with:

softwareupdate --install-rosetta
LibOMP (Apple Silicon only)

Apple Silicon does not ship libomp by default. It will need to be installed manually for some features of the ML toolkit to work. The libomp library can be installed from homebrew.

Check if Homebrew is installed by running the following command:

brew --version

If Homebrew is not installed, install it by running:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Or follow the instructions here.

To install LibOMP, run the following command:

brew install libomp
VcXsrv (Windows Subsystem for Linux only)

Since a WSL installation is headless by default (i.e., there is only access to a terminal running a Linux distribution) there are additional steps required to display visualizations. A more detailed tutorial is found, here.

  • Dynamically export the DISPLAY environment variable in WSL2:
# add to the end of ~/.bashrc file
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
# source the file
source ~/.bashrc
  • Download and install VcXsrv
  • When running the program is important to check "Disable access control"

After this, VcXsrv should be running successfully, and the machine is ready to proceed with the terminal installation.

Alternatives to VcXsrv include:

GTK toolchains (Linux only)

GTK is a window extension that is used to display interactive charts and tables. The library responsible for interactive charts and tables (pywry) requires certain dependencies, based on the Linux distribution, to be installed first.

Debian-based / Ubuntu / Mint
sudo apt install libwebkit2gtk-4.0-dev
Arch Linux / Manjaro
sudo pacman -S webkit2gtk
Fedora
sudo dnf install gtk3-devel webkit2gtk3-devel

Proceed to next steps once the requirements above have been met.

Clone the Source Code

Clone the OpenBB Terminal source code from GitHub. This will download the source code to the current working directory.

git clone https://github.com/OpenBB-finance/OpenBBTerminal.git

Enter the directory:

cd OpenBBTerminal

Create and Activate the Virtual Environment

Create the environment by copying the code below into the command line and agreeing to the prompts.

conda env create -n obb --file build/conda/conda-3-9-env.yaml

:::note Additional YAML files provide support for Python versions 3.8 and 3.10. Substitute the 9, in the command above, with the desired version. :::

After the obb environment is created, activate it by entering:

conda activate obb

:::note When the new environment is activated for the first time, it is required to clean up some artifacts in order for all dependencies to work nicely.

On macOS and Linux do this by running this script (copy and paste the launch code):

build/conda/cleanup_artifacts.sh

On Windows do this by running this script (copy and paste the launch code):

build\conda\cleanup_artifacts.bat

:::

Install the OpenBB Terminal

Make sure to have completed all previous steps. If followed, the current working directory will be the location where the OpenBB Terminal source code lives.

Install the remaining dependencies and the terminal through Poetry, a package manager.

poetry install -E all

:::info

Read about Conda, Poetry and Python package management

For the best user experience we advise using conda and poetry for environment setup and dependency management. Conda ships binaries for packages like numpy so these dependencies are not built from source locally by pip. Poetry solves the dependency tree in a way that the dependencies of dependencies of dependencies use versions that are compatible with each other.

For Conda environments, the build/conda folder contains multiple .yaml configuration files to choose from.

When using other Python distributions we highly recommend a virtual environment like virtualenv or pyenv for installing the terminal dependency libraries.

For people who prefer using "vanilla" pip the requirements files are found in the project root:

  • requirements.txt list main dependencies
  • requirements-full.txt list all the dependencies including Machine Learning and Portfolio Optimization libraries and dependencies for developers

They can be installed with pip:

pip install -r requirements.txt

The dependency tree is solved by poetry.

Note: The libraries specified in the requirements files have been tested and work for the purpose of this project, however, these may be older versions. Hence, it is recommended for the user to set up a Python virtual environment prior to installing them. This keeps dependencies required by different projects in separate places.

After installing the requirements, install the terminal with:

pip install .
:::

Once this installation process is completed, start the terminal by running:

python terminal.py

NOTE: When the OpenBB Terminal is opened next, the Python environment will need to be activated again. When using a code editor, make sure that the correct environment is selected. This should be easy to figure out if there is an error stating that there are missing packages. To launch the OpenBB Terminal application in a new terminal window, first navigate into the folder where the source code was cloned, and then use the following two commands:

conda activate obb
python terminal.py

TROUBLESHOOTING: Having difficulty getting through the installation, or encountering errors? Reach out to our Discord community for help.