1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-22 07:28:10 +00:00

python: update README (fixes #788)

This commit is contained in:
matejcik 2020-01-24 17:52:03 +01:00
parent 37ea0773ea
commit f506bd4447
2 changed files with 65 additions and 100 deletions

View File

@ -7,19 +7,12 @@ EXCLUDE_TARGETS=messages
all: build
clean-gen: ## remove generated files
rm -f src/trezorlib/messages/*.py
rm -f src/trezorlib/coins.json
coins_json:
./helper-scripts/build-coins-json.sh
coins_json_check:
./helper-scripts/build-coins-json.sh --check
gen: clean-gen
make -C .. gen
build:
$(SETUP) build

View File

@ -1,115 +1,88 @@
# python-trezor
# trezorlib
[![image](https://travis-ci.org/trezor/python-trezor.svg?branch=master)](https://travis-ci.org/trezor/python-trezor) [![repology](https://repology.org/badge/tiny-repos/python:trezor.svg)](https://repology.org/metapackage/python:trezor) [![image](https://badges.gitter.im/trezor/community.svg)](https://gitter.im/trezor/community)
[![repology](https://repology.org/badge/tiny-repos/python:trezor.svg)](https://repology.org/metapackage/python:trezor) [![image](https://badges.gitter.im/trezor/community.svg)](https://gitter.im/trezor/community)
Python library and commandline client for communicating with Trezor
Python library and command-line client for communicating with Trezor
Hardware Wallet
See <https://trezor.io> for more information
## Install
Python-trezor requires Python 3.5 or higher, and libusb 1.0. The easiest
Python Trezor tools require Python 3.5 or higher, and libusb 1.0. The easiest
way to install it is with `pip`. The rest of this guide assumes you have
a working `pip`; if not, you can refer to [this
guide](https://packaging.python.org/tutorials/installing-packages/).
### Quick installation
On a typical Linux / Mac / BSD system, you already have all you need.
Install `trezor` with:
On a typical system, you already have all you need. Install `trezor` with:
```sh
pip3 install --upgrade setuptools
pip3 install trezor
```
On Windows, you also need to install
[libusb](https://github.com/libusb/libusb/wiki/Windows) and the
appropriate [drivers](https://zadig.akeo.ie/). This is, unfortunately, a
topic bigger than this README.
On Windows, you also need to either install [Trezor Bridge](https://wallet.trezor.io/#/bridge), or
[libusb](https://github.com/libusb/libusb/wiki/Windows) and the appropriate
[drivers](https://zadig.akeo.ie/).
### Older Trezor One support
### Firmware version requirements
If your Trezor One is on firmware **1.6.3** or older, you will need HIDAPI support
for it to be recognized. That requires additional packages.
Current trezorlib version supports Trezor One version 1.8.0 and up, and Trezor T version
2.1.0 and up.
#### Debian / Ubuntu
For firmware versions below 1.8.0 and 2.1.0 respectively, the only supported operation
is "upgrade firmware".
On a Debian or Ubuntu based system, you can install these:
Trezor One with firmware _older than 1.7.0_ (including firmware-less out-of-the-box
units) will not be recognized, unless you install HIDAPI support (see below).
### Installation options
* **Firmware-less Trezor One**: If you are setting up a brand new Trezor One without
firmware, you will need HIDAPI support. On Linux, you will need the following packages
(or their equivalents) as prerequisites: `python3-dev`, `cython3`, `libusb-1.0-0-dev`,
`libudev-dev`.
Install with:
```sh
pip3 install trezor[hidapi]
```
* **Ethereum**: To support Ethereum signing from command line, additional packages are
needed. Install with:
```sh
pip3 install trezor[ethereum]
```
To install both, use `pip3 install trezor[hidapi,ethereum]`.
### Distro packages
Check out [Repology](https://repology.org/metapackage/python:trezor) to see if your
operating system has an up-to-date python-trezor package.
### Installing latest version from GitHub
```sh
sudo apt-get install python3-dev python3-pip cython3 libusb-1.0-0-dev libudev-dev
pip3 install "git+https://github.com/trezor/trezor-firmware#egg=trezor&subdirectory=python"
```
#### Windows
### Running from source
On a Windows based system, you can install these (for more info on choco, refer to [this](https://chocolatey.org/install)):
Install the [pipenv](https://pipenv.readthedocs.io/en/latest/) tool, checkout
`trezor-firmware` from git, and enter the pipenv shell:
```sh
choco install vcbuildtools python3 protoc
refreshenv
pip3 install protobuf
pip3 install pipenv
git clone https://github.com/trezor/trezor-firmware
cd trezor-firmware
pipenv sync
pipenv shell
```
When installing the trezor library, you need to specify that you want
`hidapi`:
```sh
pip3 install --upgrade setuptools
pip3 install trezor[hidapi]
```
### Ethereum support
Ethereum requires additional python packages. Instead of
`pip3 install trezor`, specify `pip3 install trezor[ethereum]`.
You can combine it with the above, to get both HIDAPI and Ethereum
support:
```sh
pip3 install trezor[ethereum,hidapi]
```
### FreeBSD
On FreeBSD you can install the packages:
```sh
pkg install security/py-trezor
```
or build via ports:
```sh
cd /usr/ports/security/py-trezor
make install clean
```
### Building from source
Sometimes you might need to install the latest-and-greatest unreleased version
straight from GitHub. You will need some prerequisites first:
```sh
sudo apt-get install protobuf-compiler protobuf-dev
pip3 install protobuf
```
If you just need to install the package, you can use pip again:
```sh
pip3 install git+https://github.com/trezor/python-trezor
```
If you want to work on the sources, make a local clone:
```sh
git clone https://github.com/trezor/python-trezor
cd python-trezor
python3 setup.py prebuild
python3 setup.py develop
```
In this environment, trezorlib and the `trezorctl` tool is running from the live
sources, so your changes are immediately effective.
## Command line client (trezorctl)
@ -124,9 +97,8 @@ Debian Stretch](https://packages.debian.org/en/stretch/python-trezor)
## Python Library
You can use this python library to interact with a Bitcoin Trezor and
use its capabilities in your application. See examples here in the
[tools/](tools/) sub folder.
You can use this python library to interact with a Trezor and use its capabilities in
your application. See examples here in the [tools/](tools/) sub folder.
## PIN Entering
@ -152,20 +124,20 @@ You have to enter: **3795**
## Contributing
Python-trezor pulls coins info and protobuf messages from
[trezor-common](https://github.com/trezor/trezor-common) repository. If
you are developing new features for Trezor, you will want to start
there. Once your changes are accepted to `trezor-common`, you can make a
PR against this repository. Don't forget to update the submodule with:
If you want to change protobuf or coin definitions, you will need to regenerate
definitions in the `python/` subdirectory.
First, make sure your submodules are up-to-date with:
```sh
git submodule update --init --remote
git submodule update --init --recursive
```
Then, rebuild the protobuf messages and get `coins.json` by running:
Then, rebuild the protobuf messages and get `coins.json` by running, from the
`trezor-firmware` top-level directory:
```sh
python3 setup.py prebuild
make gen
```
To get support for BTC-like coins, these steps are enough and no further