背景
我正要尝试从GitHub下载的Python包,发现它没有setup.py,所以我不能用
pip install -e <folder>相反,包有一个pyproject.toml文件,该文件的条目似乎与setup.py通常具有的非常相似。
我发现的
谷歌带领我进入佩普-518,并在基本原理部分对setup.py进行了一些批评。但是,它并没有清楚地说明应该避免使用setup.py,或者pyproject.toml本身将完全取代setup.py。
问题
pyproject.toml是用来取代setup.py的东西吗?或者应该同时附带一个包,一个pyproject.toml和一个setup.py
如何在可编辑状态下安装带有pyproject.toml的项目?
发布于 2020-07-19 18:05:21
是的,pyproject.toml是佩普518的指定文件格式,它包含了projects的构建系统需求。
这解决了构建工具依赖鸡和鸡蛋的问题,即pip可以读取pyproject.toml以及setuptools或wheel可能需要的版本。
如果需要setup.py进行可编辑安装,则可以在setup.py中使用shim。
#!/usr/bin/env python
import setuptools
if __name__ == "__main__":
setuptools.setup()发布于 2020-12-05 23:01:33
pyproject.toml是setup.py的新统一Python项目设置文件。可编辑安装仍然需要一个setup.py:import setuptools; setuptools.setup()
要使用pyproject.toml,运行python -m pip install .
然后,如果项目使用的是poetry而不是pip,您可以安装依赖项(到%USERPROFILE%\AppData\Local\pypoetry\Cache\virtualenvs中),如下所示:
poetry install然后运行像吡喃这样的依赖项。
poetry run pytest tests/和预承诺 (使用.pre-commit-config.yaml):
poetry run pre-commit install
poetry run pre-commit run --all-files发布于 2021-08-04 20:07:43
只回答这一部分,其他人已经很好地解释了其余部分:
如何在可编辑状态下安装带有pyproject.toml的项目?
变通(工作)
poetry install,首先创建一个正常的安装。poetry env info -p创建的虚拟环境的路径。它可能会类似于<absolute path of your cloned project/.venv。然后检查它里面的site-packages目录的路径是什么。它取决于您的Python版本,并且将类似于<absolute path of your cloned project/.venv/lib/python3.9/site-packages。site-packages。它应该包含一行文本,其中包含要以可编辑模式安装的包的完整路径:echo "<absolute path of your cloned project>" > "<absolute path of your cloned project/.venv/lib/python3.9/site-packages/package_name.pth"适当的修正(2021年8月尚未实施)
2021年6月,一个描述pyproject.toml-based构建可编辑安装的-based已经被接受。
poetry的实现是在这个公关中进行的。
因此,我们需要等待它完成,得到合并和一个新的poetry版本发布。
资料来源
除了上面的链接,我的主要来源是"pip安装-e .等效?“-第34期在github.com/python-诗歌/诗歌。
https://stackoverflow.com/questions/62983756
复制相似问题