Skip to content

Commit

Permalink
Add instruction on installing with uv
Browse files Browse the repository at this point in the history
  • Loading branch information
kobi4000 committed Jan 30, 2025
1 parent 003f694 commit 1b395d1
Showing 1 changed file with 150 additions and 1 deletion.
151 changes: 150 additions & 1 deletion docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,156 @@ Werkzeug 3.0.4

[uv](https://github.com/astral-sh/uv) is packaging tool that combines the functionality of pip, pyenv, venv and more; read about it [here](https://docs.astral.sh/uv/). It is written in Rust and **extremely** fast

TBD
Installation instructions for uv are here:

https://docs.astral.sh/uv/getting-started/installation/


First install Python itself. Pysystemtrade currently requires Python 3.10 or newer

```
$ uv python install 3.10
```

Once complete you should be able to see the new version in the output of `uv python list`

```
cpython-3.13.1+freethreaded-linux-x86_64-gnu <download available>
cpython-3.13.1-linux-x86_64-gnu <download available>
cpython-3.13.0+freethreaded-linux-x86_64-gnu /home/xxxxx/.local/share/uv/python/cpython-3.13.0+freethreaded-linux-x86_64-gnu/bin/python3.13t
cpython-3.13.0-linux-x86_64-gnu /home/xxxxx/.local/share/uv/python/cpython-3.13.0-linux-x86_64-gnu/bin/python3.13
cpython-3.12.8-linux-x86_64-gnu <download available>
cpython-3.12.7-linux-x86_64-gnu /usr/bin/python3.12
cpython-3.12.7-linux-x86_64-gnu /usr/bin/python3 -> python3.12
cpython-3.12.7-linux-x86_64-gnu /bin/python3.12
cpython-3.12.7-linux-x86_64-gnu /bin/python3 -> python3.12
cpython-3.12.5-linux-x86_64-gnu /home/xxxxx/.local/share/uv/python/cpython-3.12.5-linux-x86_64-gnu/bin/python3.12
cpython-3.11.11-linux-x86_64-gnu <download available>
cpython-3.11.9-linux-x86_64-gnu /home/xxxxx/.local/share/uv/python/cpython-3.11.9-linux-x86_64-gnu/bin/python3.11
cpython-3.10.16-linux-x86_64-gnu <download available>
cpython-3.10.15-linux-x86_64-gnu /home/xxxxx/.local/share/uv/python/cpython-3.10.15-linux-x86_64-gnu/bin/python3.10
cpython-3.9.21-linux-x86_64-gnu <download available>
cpython-3.9.16-linux-x86_64-gnu /usr/bin/python3.9
cpython-3.9.16-linux-x86_64-gnu /usr/bin/python -> /etc/alternatives/python
cpython-3.9.16-linux-x86_64-gnu /bin/python3.9
cpython-3.9.16-linux-x86_64-gnu /bin/python -> /etc/alternatives/python
cpython-3.8.20-linux-x86_64-gnu <download available>
cpython-3.7.9-linux-x86_64-gnu <download available>
pypy-3.10.14-linux-x86_64-gnu <download available>
pypy-3.9.19-linux-x86_64-gnu <download available>
pypy-3.8.16-linux-x86_64-gnu <download available>
pypy-3.7.13-linux-x86_64-gnu <download available>
```

Now we want to create a virtual environment for the project with Python 3.10 we are using.

```
$ uv venv --python 3.10
```

This will create a brand new, isolated Python environment *inside the pysystemtrade project* at the directory
`<your_path>/pysystemtrade/.venv`.

You will see
```
Using CPython 3.10.15
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
```

Now actgivate the virtual envrionment as instructed.
```
source .venv/bin/activate
```

Once your virtual env is activated, the prompt will change. It will look something like

```
(pysystemtrade) $
```
This reminds you that your virtual environment is active. You can exit the virtual environment at any time by running `deactivate`

We can check this by running python

```
$ python
Python 3.10.15 (main, Nov 27 2023, 11:13:49) [Clang 14.0.0 (clang-1400.0.29.202)]
Type "help", "copyright", "credits" or "license" for more information.
>>>
< ctrl-D to exit >
```

### dependencies

And now install the project and its dependencies

```
(pysystemtrade) $ uv pip install .
```

Or, if you intend to contribute to the project, you will need the optional development dependencies too, and will want to install in *editable* mode

```
(pysystemtrade) $ uv pip install --editable '.[dev]'
```

Check what is installed, should look something like

```
(pysystemtrade) $ uv pip list
Package Version Editable project location
----------------- ----------- ---------------------------------
black 23.11.0
blinker 1.9.0
click 8.1.8
contourpy 1.3.1
cycler 0.12.1
eventkit 1.0.3
exceptiongroup 1.2.2
flask 3.1.0
fonttools 4.55.8
ib-insync 0.9.86
iniconfig 2.0.0
itsdangerous 2.2.0
jinja2 3.1.5
joblib 1.4.2
kiwisolver 1.4.8
markupsafe 3.0.2
matplotlib 3.10.0
mypy-extensions 1.0.0
nest-asyncio 1.6.0
numpy 1.26.4
packaging 24.2
pandas 2.1.3
pathspec 0.12.1
patsy 1.0.1
pillow 11.1.0
pip 25.0
platformdirs 4.3.6
pluggy 1.5.0
psutil 5.6.7
pyarrow 19.0.0
pymongo 3.11.3
pyparsing 3.2.1
pypdf2 3.0.1
pysystemtrade 1.8.2 /home/xxxxx/github/pysystemtrade
pytest 8.3.4
python-dateutil 2.9.0.post0
pytz 2023.3
pyyaml 6.0.1
scikit-learn 1.6.1
scipy 1.15.1
setuptools 75.8.0
six 1.17.0
statsmodels 0.14.0
threadpoolctl 3.5.0
tomli 2.2.1
typing-extensions 4.12.2
tzdata 2025.1
werkzeug 3.1.3
```




## test
Expand Down

0 comments on commit 1b395d1

Please sign in to comment.