Project

General

Profile

DevelopersPython3Environment » History » Version 14

Dan Smith, 03/21/2023 03:58 PM

1 1 Dan Smith
# Python 3 Developer Environment Setup
2
3 2 Dan Smith
{{>toc}}
4
5 1 Dan Smith
## Windows
6
7
### Install Python
8
1. Download and install from [python.org](https://www.python.org/downloads/windows/). At the time of this writing, "Python 3.10.8" is recommended. During install note these options:
9
  1. Choose *Add python.exe to PATH*
10
  1. Choose *Disable path length limit*
11
1. In Windows settings, search "Manage app execution aliases" and:
12
  1. Disable *App Installer: python.exe*
13
  1. Disable *App Installer: python3.exe*
14
  1. Disable *App Installer: python3.7.exe*
15
16
### Install Git
17
1. Download and install from [git-scm.org](https://git-scm.com/download/win). During installation take the defaults except for:
18
  1. Configuring the line ending conversions: choose *Checkout as-is, commit Unix-style line endings*
19
20
### Configure Git
21
From a command line:
22
1. `git config --global user.name "FIRST_NAME LAST_NAME"`
23
1. `git config --global user.email "MY_NAME@example.com"`
24 7 Dan Smith
1. Optional, if you want to set an editor: `git config --global core.editor "PATH TO EDITOR"`
25 1 Dan Smith
26 9 Dan Smith
### Clone the chirp git repository (master branch)
27 1 Dan Smith
From a command line:
28
```
29
C:\Users\{user}\Documents> git clone https://github.com/kk7ds/chirp
30
C:\Users\{user}\Documents> cd chirp
31
```
32
33
### Install the python dependencies
34 8 Tony Fuller
1. `python3 -m pip install -r requirements.txt`
35
1. `python3 -m pip install tox`
36 1 Dan Smith
37
38
### Optional, but recommended: Install GitHub CLI
39
Via winget: `winget install --id GitHub.cli` or manually from [github.com](https://cli.github.com/)
40
41
Note: {user} as shown in paths above is the logged in Windows user
42
Note: The steps above were done on Windows 10 Pro, version 22H2
43 2 Dan Smith
44
## MacOS
45
46
### Install command-line tools
47
```shell
48
$ xcode-select --install
49
```
50
51
### Clone the chirp git repository
52
```shell
53
$ git clone https://github.com/kk7ds/chirp
54
$ cd chirp
55
```
56
57
### Install python requirements
58
```shell
59 8 Tony Fuller
$ python3 -m pip install -r requirements.txt
60
$ python3 -m pip install tox
61 2 Dan Smith
```
62
63 6 Dan Smith
(Note that `tox` is only needed for running tests, not for running chirp itself)
64 3 Dan Smith
65 2 Dan Smith
### Run chirp
66
```shell
67
$ ./chirpwx.py
68
```
69
70
## Linux
71
72
These instructions are for Debian/Ubuntu, but should be generally applicable to other distros, possibly with different package names. You can use all distro packages (recommended), or install the python requirements with `pip install -r requirements.txt` but you probably want to get wxPython from distro packages.
73
74
### Install packages
75
76
```shell
77 5 Dan Smith
$ sudo apt install git python3-wxgtk4.0 python3-serial python3-six python3-future python3-requests python3-pip
78 8 Tony Fuller
$ python3 -m pip install tox
79 1 Dan Smith
```
80 5 Dan Smith
81
(Note that `tox` is only needed for running tests, not for running chirp itself)
82 2 Dan Smith
83
### Clone the chirp git repository
84
```
85
$ git clone https://github.com/kk7ds/chirp
86
```
87
88
### Run chirp
89
```shell
90
$ cd chirp
91
$ ./chirpwx.py
92
```
93 10 Dan Smith
94 12 Dan Smith
## Python 3.11 Notes
95
96 13 Dan Smith
Python 3.11 breaks a lot of things by removing some compatibility with previous releases. Right now (as of 9-March-2023), the main CHIRP builds are done on <= 3.10 and will continue that way until the wxPython team provides pre-built 3.11 wheels for macOS and Windows.
97 12 Dan Smith
98
For `attrdict` related issues, see [this github issue](https://github.com/wxWidgets/Phoenix/issues/2296).
99
100 10 Dan Smith
## Running tests
101
102
Below are some examples for running tests using tox. This is required to pass the CI checks on submissions before things can be merged.
103
104
Running everything:
105
```
106
$ tox
107
```
108
109
Running just style checks:
110
```
111
$ tox -e style
112
```
113
114
Running just driver tests for only drivers with changes since `origin/master`:
115
```
116 11 Dan Smith
$ tox -e fast-driver
117 10 Dan Smith
```
118
119
Running just one driver test by module name:
120
```
121 11 Dan Smith
$ tox -e driver -- -k ic2820
122 10 Dan Smith
```
123
124
Running all driver tests for a given vendor:
125
```
126 11 Dan Smith
$ tox -e driver -- -k Icom
127 10 Dan Smith
```