如何使用PIP安装具有不同名称的python包

问题描述 投票:29回答:10

使用PIP安装新的python包时,是否可以更改包名称,因为还有另一个包含相同名称的包?

或者,如何更改现有包名?

python duplicates package pip
10个回答
4
投票

我认为解决这个问题的一种方法是使用

pip download

请参阅文档here。您可以在下载包后更改包的名称,然后手动安装它。我没有测试过这个,但似乎应该可行。


-2
投票

使用pip命令行工具无法做到这一点。 PyPI上的所有包都有唯一的名称。软件包通常需要并相互依赖,并假设名称不会更改。


3
投票

如果您在使用pip install'module'时正在努力安装正确的软件包,您可以随时下载相应的wheel文件(.whl扩展名),然后使用pip直接安装。这在过去的各种情况下对我有用。


3
投票

如果您不需要同一项目的两个包,请使用virtualenv。使用virtualenv,您也可以拥有不同版本的软件包。

另一种方式可能是已提到的网站包。

https://virtualenv.pypa.io/en/stable/

http://docs.python-guide.org/en/latest/dev/virtualenvs/#lower-level-virtualenv


3
投票

创建一个新的virtualenv,然后在新的virtualenv上安装该软件包,你也可以拥有不同版本的软件包。


3
投票

我有库gmailpygmail这个问题,他们都想安装到PYTHONPATH/site-packages/gmail/。显然pygmail包有一个问题,它应该安装到pygmail文件夹,但它们多年来没有进行任何更新。

对于临时解决方案,我安装了一个(pygmail),然后更改了文件夹名称(gmail - > pygmail,和gmail-v#.dist-info - > pygmail-v#.dist-info),然后安装了第二个通常一个。似乎工作,只要我不尝试更新第一个包。 import gmailimport pygmail按预期工作。


2
投票

我猜你至少有一个你引用的软件包没有从https://pypi.org/安装,因为它们强制执行软件包的唯一名称;这意味着您从源代码安装该软件包,这意味着您还可以自由地将其名称更改为您想要的名称。您可以通过更改违规包的根目录中的setup.py文件来完成此操作。


2
投票

通过指定pip的参数,无法更改“导入路径”(已安装的名称)。所有其他选项都需要某种形式的“更改包”:

A.使用pip install -e git+http://some_url#egg=some-name:即使两个包具有相同的导入路径,它们也会保存在不同的目录下(使用some-name之后提供的#egg=)。在此之后,您可以转到包的源目录(usuaully venv/src/some-name)并重命名一些文件夹以更改导入路径

公元前。分叉存储库,进行更改,然后从该存储库安装软件包。或者,您可以使用不同的名称在PyPI上发布包,并按名称安装它

D.使用pip download将其中一个包放入项目中,然后根据需要重命名文件夹


1
投票

我不认为可以通过使用pip来更改包的名称。因为pip可以安装存在的包,如果没有您编写的包名,则会发生错误,以更改包的名称。


-1
投票

我想这取决于你是否需要更新其中任何一个。如果不这样做,那么您可以转到site-packages文件夹,然后重命名该文件夹

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