在不使用 setup.py 的情况下开发 Python 包的首选方法是什么?

问题描述 投票:0回答:1

我正在开发一个 python 包,我不想每次更改某些内容时都必须继续运行

pip install .
来重新安装我的包。除非我有一个
-e
文件,否则使用
--editable
setup.py
似乎不起作用,
--no-use-pep517
也没有。我有一个
pyproject.toml
,如果我没记错的话,现在更喜欢。那么,现在执行此操作的首选方法是什么?

我的包只是一个 CLI 脚本,但它从另一个文件 在同一目录 中导入了一些功能,称为

utils.py
。开发时,我不能只从终端手动运行脚本,因为那样我会从name_of_package
行得到“
from name_of_package.utils import function
不是包
”。而如果我只有
from utils import function
,我可以从终端运行脚本,但是当我
pip install
它时,它说“没有名为
utils
的模块”。

我确实安装了

poetry
并安装了我的依赖项,运行了
poetry
shell,然后尝试使用
poetry run /path/to/script.py
运行我的脚本,但我一直收到一个错误,说我的包不是一个包。

python pip setuptools python-packaging python-poetry
1个回答
4
投票

如果您想继续使用 setuptools 作为“构建后端”,那么您可以

setup.py
脚本替换为
setup.cfg
声明性配置文件
并且仍然能够进行“可编辑”安装(独立于是否或者你有一个
pyproject.toml
文件)。

现在有 PEP 660 标准化可编辑安装。以下工具支持 PEP 660:

在基于 setuptools 的项目之上,所有使用 PEP 660 构建后端的项目都应该可以通过 pip (

python -m pip install --editable .
) 进行编辑安装。

© www.soinside.com 2019 - 2024. All rights reserved.