Project

General

Profile

DevelopersPython3Environment » History » Version 20

Dan Smith, 10/16/2024 09:42 AM

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 17 Alexandre J. Raymond
### 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 17 Alexandre J. Raymond
### Run CHIRP
38
From inside the chirp git repo, type this to run CHIRP from source:
39 15 Dan Smith
```
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 17 Alexandre J. Raymond
### Clone the CHIRP git repository
57 2 Dan Smith
```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 17 Alexandre J. Raymond
(Note that `tox` is only needed for running tests, not for running CHIRP itself)
69 3 Dan Smith
70 17 Alexandre J. Raymond
### Run CHIRP
71 2 Dan Smith
```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 20 Dan Smith
$ sudo apt install git python3-requests python3-serial python3-six python3-suds python3-wxgtk4.0 python3-yattag python3-pip
83 8 Tony Fuller
$ python3 -m pip install tox
84 1 Dan Smith
```
85 5 Dan Smith
86 1 Dan Smith
(Note that `tox` is only needed for running tests, not for running CHIRP itself)
87 20 Dan Smith
88
Alternately, and especially if your distro is using managed python, you may want to just create a virtualenv for development. You will still want wxPython from the distro though:
89
90
```shell
91
$ sudo apt install python3-wxgtk4.0 python3-virtualenv
92
$ virtualenv --system-site-packages venv
93
$ source venv/bin/activate
94
$ pip install -r requirements.txt
95
```
96 2 Dan Smith
97 17 Alexandre J. Raymond
### Clone the CHIRP git repository
98 2 Dan Smith
```
99
$ git clone https://github.com/kk7ds/chirp
100
```
101
102 17 Alexandre J. Raymond
### Run CHIRP
103 2 Dan Smith
```shell
104
$ cd chirp
105
$ ./chirpwx.py
106
```
107 10 Dan Smith
108 12 Dan Smith
## Python 3.11 Notes
109
110 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.
111 12 Dan Smith
112
For `attrdict` related issues, see [this github issue](https://github.com/wxWidgets/Phoenix/issues/2296).
113
114 10 Dan Smith
## Running tests
115
116
Below are some examples for running tests using tox. This is required to pass the CI checks on submissions before things can be merged.
117
118
Running everything:
119
```
120
$ tox
121
```
122
123
Running just style checks:
124
```
125
$ tox -e style
126
```
127
128
Running just driver tests for only drivers with changes since `origin/master`:
129
```
130 11 Dan Smith
$ tox -e fast-driver
131 10 Dan Smith
```
132
133
Running just one driver test by module name:
134
```
135 11 Dan Smith
$ tox -e driver -- -k ic2820
136 10 Dan Smith
```
137
138
Running all driver tests for a given vendor:
139
```
140 11 Dan Smith
$ tox -e driver -- -k Icom
141 10 Dan Smith
```