Installer Tool for Python Programs
Project description
PINSTALL - Installer Tool for Python Programs
This is a simple tool to facilitate installing Python programs on Linux systems. The following commands are presently implemented, each as an independent plugin.
The latest documentation and code is available at https://github.com/bulletmark/pinstall.
Usage
Type pinstall
or pinstall -h
to view the usage summary:
usage: pinstall [-h] {venv,status,service} ...
Installer tool for Python programs.
options:
-h, --help show this help message and exit
Commands:
{venv,status,service}
venv Creates a Python virtual environment.
status Reports systemctl status of services and timers
installed from the current directory.
service Installs systemd services and corresponding timers.
Type pinstall <command> -h
to see specific help/usage for any
individual command:
Command venv
usage: pinstall venv [-h] [-d DIR] [-p PYTHON | -P PYENV]
[-f REQUIREMENTS_FILE] [-r] [-u] [-i [PACKAGE ...]]
[-w] [-v]
[args ...]
Creates a Python virtual environment.
Runs `python -m venv` to create a venv (optionally for the specified
Python name, or path, or pyenv Python version); adds a .gitignore to it
to be automatically ignored by git; upgrades the venv with the latest
pip + setuptools + wheel; then installs all packages from
1) requirements.txt if present, or 2) from pyproject.toml if present.
positional arguments:
args optional arguments to python -m venv (add by starting
with "--"). See options in `python -m venv -h`
options:
-h, --help show this help message and exit
-d DIR, --dir DIR directory name to create, default="venv"
-p PYTHON, --python PYTHON
python executable, default="python3"
-P PYENV, --pyenv PYENV
pyenv python version to use, i.e. from `pyenv
versions`, e.g. "3.9".
-f REQUIREMENTS_FILE, --requirements-file REQUIREMENTS_FILE
default="requirements.txt"
-r, --no-require don't pip install requirements/dependencies
-u, --no-upgrade don't upgrade pip/setuptools in venv
-i [PACKAGE ...], --install [PACKAGE ...]
also install (1 or more) given packages
-w, --no-wheel don't install wheel in venv
-v, --verbose verbose pip install (can add multiple times to
increase verbosity)
Command status
usage: pinstall status [-h] [-u] [units ...]
Reports systemctl status of services and timers installed from the
current directory.
positional arguments:
units systemd service file[s]
options:
-h, --help show this help message and exit
-u, --user report for user service
Command service
usage: pinstall service [-h] [-u] [-s] [-e] [-r] [units ...]
Installs systemd services and corresponding timers.
Substitutes template strings within each *.service file in the current
directory (and in any corresponding .timer file); installs the
substituted file[s] to the appropriate systemd system (or user) unit
configuration directory; then enables and starts the service (or the
timer).
Template strings can be any of the following:
HOME : Home directory path of the invoking user
USER : User name of invoking user
USERID : Numeric user ID of the invoking user
GROUPID : Numeric group ID of the invoking user
WORKDIR : Directory path of the service file
PROGDIR : Same as WORKDIR
BASENAME : Directory name of the service file
PROG : Stem name of the service file (i.e. "name" in "name.service")
PROGTITLE : Upper case of PROG
Template strings are specified in .service and .timer files by wrapping
them in hash symbols. Installed copies of these source files have all
instances of template strings replaced by their value. E.g. #HOME#
gets replaced by the user's home directory path.
positional arguments:
units systemd service file[s]
options:
-h, --help show this help message and exit
-u, --user install as user service
-s, --no-start do not start service[s]
-e, --no-enable do not enable service[s]
-r, --remove just uninstall and remove service[s]
Command venv
usage with Pyenv
Pyenv is a popular tool to easily
install and switch between multiple versions of Python. So for example,
you can use pyenv
+ pinstall
to easily test a Python program with an
older or newer version than your system Python.
E.g. Install Python 3.7 and then create a virtual enviroment (in the current directory) using it:
$ pyenv install 3.7
$ pinstall venv -P 3.7
$ venv/bin/python --version
Python 3.7.16
Note in this example that pyenv installed Python 3.7.16 because that was the latest 3.7 version available (at the time of writing).
Installation
Arch Linux users can install pinstall from the AUR.
Python 3.6 or later is required and the sudo
program must be installed.
Note pinstall is on PyPI so just
ensure that pipx
is installed then
type the following:
$ pipx install pinstall
To upgrade:
$ pipx upgrade pinstall
License
Copyright (C) 2023 Mark Blakeney. This program is distributed under the terms of the GNU General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License at http://www.gnu.org/licenses/ for more details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pinstall-1.5.tar.gz
.
File metadata
- Download URL: pinstall-1.5.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cdf45f9cc8954ea2122f7e9a2515d92c06c402e0663e284cd5b76ded9ed629f |
|
MD5 | 4cc0b71958e0711a14e1e509b8f33e03 |
|
BLAKE2b-256 | 22a0d263d7278d54ecac67a7444f3882739eea11969dee804142a94e9a2d0e96 |
File details
Details for the file pinstall-1.5-py3-none-any.whl
.
File metadata
- Download URL: pinstall-1.5-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e93061e1ed5ec310f6427a075c7c04ffe086a4243d96b7375228950ee9df4cd |
|
MD5 | 8322dde992047ae02b8d65557e0c0003 |
|
BLAKE2b-256 | b7993e9dc8a66ce5afa858df810f42f5e65acf2b454c6fb2be8084bcc8ffcfa9 |