简体   繁体   中英

Installing into a venv with setup.py setuptools

I'm looking for a way to do a single-command installation of the whole python application into a venv by a specific path.


I did some research about this topic and particularly in this thread there was a discussion about Makefile automation of the process. It also suggests to use pyinvoke , which appeared to me as a command line commands wrapped into python. So I currently wrote the following simple on-the-knee shell script:

install_venv.sh

#!/bin/bash

PYTHON="$1"
VENV_PATH="$2"
SOURCE_ROOT="$(dirname "$(readlink -f "$BASH_SOURCE")")"

echo "$PYTHON"
echo "$VENV_PATH"
echo "$SOURCE_ROOT"

cd $SOURCE_ROOT
$PYTHON -m venv $VENV_PATH
source "$VENV_PATH/bin/activate"
python -m pip install -r "$SOURCE_ROOT/requirements.txt"
python setup.py install

This script can be run, say as ./install_venv.sh python3.7 /tmp/test_venv . It does not handle the case if venv already exists by the path, but it can be extended in a straightforward way.

It looks like a very common task, so maybe setuptools already has a way to do so or writing such scripts is still necessary? Or what is the preferred way?

Not exactly sure what the true intention is...


Maybe one of these tools can help:

These tools allow you to install a Python application with all their required dependencies in an isolated way. Some are based on virtual environments some are not.


Maybe you are looking for a tool such as poetry (or pipenv but not sure if it's still being maintained or not).


More simple and straightforward, there is this plugin for setuptools :

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM