Project

General

Profile

DevelopersPython3Environment » History » Version 16

Dan Smith, 03/21/2023 04:00 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 16 Dan Smith
### Run chirp
38 15 Dan Smith
From inside the chirp git repo, type this to run chirp from source:
39
```
40
chirpwx.py
41
```
42 1 Dan Smith
43
### Optional, but recommended: Install GitHub CLI
44
Via winget: `winget install --id GitHub.cli` or manually from [github.com](https://cli.github.com/)
45
46
Note: {user} as shown in paths above is the logged in Windows user
47
Note: The steps above were done on Windows 10 Pro, version 22H2
48 2 Dan Smith
49
## MacOS
50
51
### Install command-line tools
52
```shell
53
$ xcode-select --install
54
```
55
56
### Clone the chirp git repository
57
```shell
58
$ git clone https://github.com/kk7ds/chirp
59
$ cd chirp
60
```
61
62
### Install python requirements
63
```shell
64 8 Tony Fuller
$ python3 -m pip install -r requirements.txt
65
$ python3 -m pip install tox
66 2 Dan Smith
```
67
68 6 Dan Smith
(Note that `tox` is only needed for running tests, not for running chirp itself)
69 3 Dan Smith
70 2 Dan Smith
### Run chirp
71
```shell
72
$ ./chirpwx.py
73
```
74
75
## Linux
76
77
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.
78
79
### Install packages
80
81
```shell
82 5 Dan Smith
$ sudo apt install git python3-wxgtk4.0 python3-serial python3-six python3-future python3-requests python3-pip
83 8 Tony Fuller
$ python3 -m pip install tox
84 1 Dan Smith
```
85 5 Dan Smith
86
(Note that `tox` is only needed for running tests, not for running chirp itself)
87 2 Dan Smith
88
### Clone the chirp git repository
89
```
90
$ git clone https://github.com/kk7ds/chirp
91
```
92
93
### Run chirp
94
```shell
95
$ cd chirp
96
$ ./chirpwx.py
97
```
98 10 Dan Smith
99 12 Dan Smith
## Python 3.11 Notes
100
101 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.
102 12 Dan Smith
103
For `attrdict` related issues, see [this github issue](https://github.com/wxWidgets/Phoenix/issues/2296).
104
105 10 Dan Smith
## Running tests
106
107
Below are some examples for running tests using tox. This is required to pass the CI checks on submissions before things can be merged.
108
109
Running everything:
110
```
111
$ tox
112
```
113
114
Running just style checks:
115
```
116
$ tox -e style
117
```
118
119
Running just driver tests for only drivers with changes since `origin/master`:
120
```
121 11 Dan Smith
$ tox -e fast-driver
122 10 Dan Smith
```
123
124
Running just one driver test by module name:
125
```
126 11 Dan Smith
$ tox -e driver -- -k ic2820
127 10 Dan Smith
```
128
129
Running all driver tests for a given vendor:
130
```
131 11 Dan Smith
$ tox -e driver -- -k Icom
132 10 Dan Smith
```