使用setup.py setuptools安装到venv中

时间:2019-11-29 04:45:08

标签: python python-3.x bash setuptools python-venv

我正在寻找一种通过特定路径将整个python应用程序单命令安装到venv中的方法。


我对此主题进行了一些研究,尤其是在this thread中,有一个有关Makefile流程自动化的讨论。它还建议使用pyinvoke,它在我看来是包装在python中的命令行命令。因此,我目前编写了以下简单的膝盖脚本:

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

此脚本可以运行,例如./install_venv.sh python3.7 /tmp/test_venv。如果路径中已经存在venv,它不会处理这种情况,但是可以通过一种简单的方式对其进行扩展。

这似乎是一项非常常见的任务,所以也许setuptools已经可以做到这一点,还是仍然有必要编写此类脚本?或首选方式是什么?

1 个答案:

答案 0 :(得分:2)

不确定确切意图是什么...


也许这些工具之一可以提供帮助:

这些工具允许您以隔离的方式安装具有所有必需依赖项的Python应用程序。有些基于虚拟环境,有些则不是。


也许您正在寻找poetry(或pipenv)之类的工具,但不确定是否仍在维护中。


更简单明了,有一个用于 setuptools 的插件: