【发布时间】:2026-02-18 11:45:01
【问题描述】:
我正在寻找一种通过特定路径将整个 python 应用程序单命令安装到venv 的方法。
我对这个主题做了一些研究,特别是在this thread 中,有一个关于Makefile 流程自动化的讨论。它还建议使用pyinvoke,在我看来,它是包裹在python 中的命令行命令。因此,我目前编写了以下简单的膝上 shell 脚本:
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 已经有办法做到这一点,或者仍然需要编写这样的脚本?或者首选的方式是什么?
【问题讨论】:
-
查看
pipx工具github.com/pipxproject/pipx -
@wim 它可以按路径运行 Wheel 包吗?我安装了
python3.7 -m pipx install target/dist/my_fancy_app-0.0.1-py3-none-any.whl并得到了错误Could not find package target/dist/my_fancy_app-0.0.1-py3-none-any.whl. Is the name correct?。运行也没有像我预期的那样工作python3.7 -m pipx run target/dist/my_fancy_app-0.0.1-py3-none-any.whl引发'target/dist/my_fancy_app-0.0.1-py3-none-any.whl' executable script not found in package 'target/dist/my_fancy_app-0.0.1-py3-none-any.whl'. Available executable scripts:。我检查了包,脚本在那里。
标签: python python-3.x bash setuptools python-venv