- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的Python项目中有以下结构:
├───pyproject.toml
└───mypackage
│
├───lib
│ localdep-0.2.0-py3-none-any.whl
│ localdep-0.2.0.tar.gz
└───service
app.py
home.py
modules.py
我需要使用mypackage/lib/localdep-0.2.0...
中的诗歌和本地依赖项localdep
构建mypackage
只需使用简单的 pip install mypackage-0.1.0.tar.gz
命令即可安装 mypackage
,无需任何其他文件。我尝试在 pyproject.toml
中使用 path
和 file
说明符,但是我不断收到以下错误:
ERROR: Could not find a version that satisfies the requirement localdep(from mypackage==0.1.0) (from versions: none)
我的pyproject.toml
的当前版本:
[build-system]
requires = [ "poetry>=0.12",]
build-backend = "poetry.masonry.api"
[tool.poetry]
name = "myproject"
version = "0.1.0"
description = "Simple demo project."
authors = ["Some Author"]
license = "MPL 2.0"
[tool.poetry.dependencies]
python = "3.7.3"
localdep = {file = "mypackage/lib/localdep-0.2.0-py3-none-any.whl"}
有谁知道如何将本地依赖项传递给pyproject.toml
,以便poetry build
能够以正确的方式打包它?
最佳答案
诗歌的用例local dependency syntax和你需要的不一样,所以这里不能解决你的问题。
从这些文档中的使用示例中,您可以看到路径指向不属于包本身的包,它们总是首先保留根,如下所示:../some/different/location
。整个构造仅在开发期间有用,其逻辑将通过 poetry install
运行,而不是 poetry build
。
您想要的是将本地依赖项与您的项目捆绑在一起,以便 pip
在部署项目的 .whl
期间知道从哪里提取本地依赖项。但由于 pyproject.toml 没有与轮元数据打包在一起,因此从何处获取依赖项的信息不再可用,因此它无法工作。构建的包只知道它有哪些依赖项,而不知道从哪里获取它们。这种哲学对于其他语言来说可能有 pip 不寻常,在其他语言中,将所有依赖项与代码捆绑在一起并不罕见。
因此,即使您能够构建包以包含另一个轮子,默认情况下这也不起作用,因为 setuptools
仅包含 sdist/中的 .py
文件默认情况下为 bdist,pip
无法知道依赖项是否可达。我看到有四种选择可以用 python 支持的方式解决您的问题。
localdep
版本,或上传到那里。但如果有可能的话,你可能就不会问这个问题了。localdep
在您的控制之下并且仅由 mypackage
使用,请将其写入 mypackage
的简单子(monad)模块 - 读取,让 localdep
成为自己的软件包的最初决定是过度设计,这可能是真的,也可能不是。localdep
方式。拿this guide如需深入解释所有注意事项和陷阱,或 this hacky post如果您想让它发挥作用而不需要真正理解为什么或如何。驾驶室部分需要更多的文字,但它可能最接近您最初的想法。在这种方法中,您不需要在项目中包含 localdep
,并且最好删除整个 mypackage/lib
文件夹。 localdep
只需要安装到您的 python 解释器中,您可以通过运行 pip freeze
并检查输出中 localdep
的名称和版本来确保这一 pip 。
然后,相同的输出将用于使用 pipwheel -w wheelhouse $(pip freeze)
构建所述驾驶室。如果您不想包含开发依赖项,delete your current virtualenv并在使用poetry install运行wheel命令之前设置并输入它;再次诗歌外壳
。
为了完整起见,您可以使用poetry build
构建dist/myproject.whl
并将其也放入其中,然后您可以使用这个驾驶室来安装通过使用您想要的任何 python
运行 python -m pip install wheelhouse/*
,您可以在任何地方安装您的软件包。
Poetry 是一个用于开发包的依赖管理器,因此它不会过多地处理部署问题,并且仅以切线为目标。这通常很好,因为正如我们所见,pip 在这方面非常有能力。 pip
在开发过程中不太方便,这就是为什么 Poetry 很好,但是 Poetry 并不能完全取代 pip
。
关于python - 使用本地依赖项用诗歌构建可安装的 tar.gz/whl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58085054/
我想安装我保存到本地驱动器的hdbcli-2.3.99-cp27-cp27m-win_amd64.whl。 我正在使用下一个: PS C:\Users\i326707\PycharmProjects\
我是 python 新手,正在尝试使用 .whl 文件安装一些模块/包。该系统无法访问互联网,因此一切都是本地的。 我运行的是 RHEL 6.9 64 位 2.6.32-696.10.1.el6.x8
我是 python 新手,正在尝试使用 .whl 文件安装一些模块/包。该系统无法访问互联网,因此一切都是本地的。 我正在运行 RHEL 6.9 64 位 2.6.32-696.10.1.el6.x8
由于一些自定义日志记录,我想从轮文件中获取版本号。 我当然可以只解析文件名,但我猜会有更好的方法来做到这一点。 最佳答案 您也可以使用 pkginfo例如 from pkginfo import Wh
我最近发现自己不得不在没有互联网连接的机器上安装 python 项目的所有依赖项(20+)。我用过 pip download ...获取所有 *.whl文件并手动传输它们。直到现在我才完全欣赏 pip
$ python3 -m venv ~/venvs/vtest $ source ~/venvs/vtest/bin/activate (vtest) $ pip install numpy Coll
我尝试在 Windows 7 64 位上安装 PyAudio。使用 pip 安装它会引发依赖错误,最终导致如何满足这些错误。所以我尝试用wheel安装它,建议是只使用pip install: D:\P
我不小心将 Pygame .whl 更改为使用记事本打开。这意味着我在尝试安装 Pygame 时遇到此错误。 我绝望地尝试过,在重命名时在文件末尾键入“.whl”,但它没有用。 C:\Users\ro
我最近安装了 PyQt4。安装成功。现在删除 PyQt4-4.11.4-cp37-cp37m-win_amd64.whl 文件是个好习惯吗?这会阻止我将来使用 pip uninstall PyQt4
我正在尝试为在 .whl 中调用函数的函数编写测试。文件,但我正在努力模拟车轮中的功能。我在我的虚拟环境中安装了轮子 - 我用 pip install my_wheel.whl 安装了轮子而在环境中。
我正在尝试从源代码构建 Tensorflow(如果我直接安装它可以正常工作,但我正在尝试获得 AVX2/FMA 扩展支持,因为我无法使用 CUDA/GPU)并且我正在关注 this tutorial构
系统:windows 10 64 位,python 3.6.5 64 位。使用 python 。 CUDA 10.0,安装了 cuddn。 美好的一天。出于安全原因,我们公司拒绝访问互联网。我从官网下
我的Python项目中有以下结构: ├───pyproject.toml └───mypackage │ ├───lib │ localdep-0.2.0-py3-
给定一个包含 3 个子目录的 Python 代码库:common、private、public,如何构建排除其中一个目录的 Python 轮文件? 具体来说,我想构建一个包含 common 和 pub
我正在使用 PipEnv 来设置一个项目,并且我需要从预编译的二进制文件中安装一些包。在之前的项目中,我只是将 pipenv 文件从某个本地文件夹安装到我的环境中,但这似乎会导致锁定文件出现问题,如果
我目前正在使用一些 IMU 传感器,制造商提供了一个 wheel 文件来管理来自 python 的传感器数据。但是每当我尝试使用 pip 安装它时,我都会收到以下消息: pip3 install xs
我想安装 pylab,但无法直接访问 pip(代理限制)。我无法通过 cntlm 或其他代理隧道解决方案。 所以我有两个解决方案: 手动安装每个包,运行它,安装缺少的依赖项并返回 (1) 下载 whe
当我尝试通过输入 cmd C:\Users\owner\Downloads>pip install TA_Lib-0.4.9-cp27-none-win_amd64.WHLI 从 gohike 安装任
我有一个 python wheel 包,解压后我发现了一些 python 代码,我想编辑这段代码并再次重新生成相同的 .whl 包并测试它以查看编辑内容..我该怎么做? 最佳答案 除了 setup.p
我想从 .whl 创建一个 .egg 文件。这可能吗? 我找到了使用 wheel 包进行相反操作的答案(.whl 来自 .egg),但我不知道如何正确地进行反向操作。 最佳答案 您可以使用 humpt
我是一名优秀的程序员,十分优秀!