如何确保 Pip 安装 dist-info 而不是 Egg-info

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

我正在运行一个基于数字海洋应用平台构建的软件。我需要安装两个我自己构建的私有包。问题是当我尝试使用以下命令安装它们时:

pip install git+https://{username}:{authentication}@github.com/{repo owner}/{package}
pip install --upgrade git+https://{username}:{authentication}@github.com/{repo owner}/{package}
pip install --no-cache-dir git+https://{username}:{authentication}@github.com/{repo owner}/{package}

它安装 Egg-info 而不是 dist-info。 Egg 信息已过时,版本为 0.9.4,我要安装的版本是 0.9.6。它说它在终端上安装了 0.9.6 版本,但实际上安装了来自 Egg-info 的 0.9.4 文件。我都运行“python sdist setup.py”和“python setup.py bdist_wheel”来创建主包文件和轮子。我在本地笔记本电脑上尝试了它,创建了一个新的测试虚拟环境,当我运行这些命令时,它正确安装了轮子及其文件。然而,在 Digital Ocean 应用平台上,它只是不断安装 Egg-info。

您能帮我解决这个问题并确保它始终从轮子上安装吗?

pip digital-ocean python-wheel egg private-repository
1个回答
0
投票

我自己在将 Web 应用程序安装到 Linode 服务器时遇到了这个问题,解决方案是确保 pip、setuptools 和wheel 均已安装且均为最新版本:

python3 -m pip install --upgrade pip setuptools wheel
pip uninstall [my-package]
pip install [git link to my package]

我是如何想到这一点的

在安装过程中,一切看起来都很好,pip 说它成功安装了软件包(并且依赖项已正确安装),但软件包本身总是丢失。相反,我只有

egg-info
目录。

我在

pip install...
输出中注意到这一行:

Using legacy 'setup.py install' for [my-package], since package 'wheel' is not installed.

所以我安装了

wheel
并再次尝试:

pip uninstall [my-package]
pip install wheel
pip install [git link to my package]

这次,它安装了

dist-info
目录,但仍然没有安装包文件。当我发现这条线时,我正在拔头发。 这个答案介绍了一系列对安装进行故障排除的方法,这有助于确保我正确设置我的软件包,但真正的解决方案是:我还需要更新
setuptools
。我运行了这个答案顶部的代码,瞧!这次我的包安装正确了。

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