当前位置: 首页 > 面试题库 >

Pip可以在安装时安装setup.py中未指定的依赖项吗?

傅峰
2023-03-14
问题内容

我希望pip在用户发出命令以安装原始软件时,也可以从GitHub上的源安装GitHub上的依赖项。这些软件包都不在PyPi上(而且永远不会)。

用户发出命令:

pip -e git+https://github.com/Lewisham/cvsanaly@develop#egg=cvsanaly

这个仓库有一个requirements.txt文件,另一个依赖于GitHub:

-e git+https://github.com/Lewisham/repositoryhandler#egg=repositoryhandler

我想要的是一个 命令 ,用户可以发出一个 命令 来安装原始软件包,让pip找到需求文件,然后再安装依赖项。


问题答案:

这个答案帮助我解决了您正在谈论的相同问题。

Vanillasetuptools不支持直接从git存储库下载,但是您可以使用该页面的“下载源”链接之一,例如:

easy_install http://github.com/mtai/python-gearman/tarball/master

setup.py似乎没有一种简单的方法可以直接使用需求文件来定义其依赖项,但是可以将相同的信息放入setup.py本身。

我有这个要求。txt:

PIL
-e git://github.com/gabrielgrant/django-ckeditor.git#egg=django-ckeditor

但是,当安装该requirements.txt的包含软件包时,pip会忽略这些要求。

这个setup.py似乎迫使pip安装了依赖项(包括我的django-ckeditor的github版本):

from setuptools import setup

setup(
    name='django-articles',
    ...,
    install_requires=[
        'PIL',
        'django-ckeditor>=0.9.3',
    ],
    dependency_links = [
        'http://github.com/gabrielgrant/django-ckeditor/tarball/master#egg=django-ckeditor-0.9.3',
    ]
)

编辑:

此答案还包含一些有用的信息。

需要指定版本作为“ #egg = …”的一部分,以标识链接中可用的软件包版本。
但是请注意,如果您始终希望依赖于最新版本,则可以 dev在install_requires,dependency_links和其他软件包的setup.py中将其设置为。

编辑: 使用dev版本不是一个好主意,如以下评论所述。



 类似资料: