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

点安装依赖项链接

阚元白
2023-03-14
问题内容

我正在使用python version 2.7pip version is 1.5.6

我想从URL安装额外的库,例如安装setup.py上的git repo。

我在中添加了额外的install_requires参数setup.py。这意味着,我的库需要额外的库,并且还必须安装它们。

...
install_requires=[
    "Django",
    ....
],
...

但是git
repos之类的网址不是ininstall_requires中的有效字符串setup.py。假设,我想从github安装一个库。我已经搜索过该问题,发现了可以放入库dependency_links中的内容setup.py。但这仍然行不通。这是我的依赖链接定义;

dependency_links=[
    "https://github.com/.../tarball/master/#egg=1.0.0",
    "https://github.com/.../tarball/master#egg=0.9.3",
],

链接有效。我可以使用这些URL从Internet浏览器下载它们。在我的设置中,这些额外的库仍未安装。我也尝试--process-dependency- links了强制点子的参数。但是结果是一样的。我在接管时没有错误。

安装后,我看不到pip freeze结果中的库dependency_links

如何使它们随我的setup.py安装一起下载?

这是我的完整 setup.py

from setuptools import setup

try:
    long_description = open('README.md').read()
except IOError:
    long_description = ''

setup(
    name='esef-sso',
    version='1.0.0.0',
    description='',
    url='https://github.com/egemsoft/esef-sso.git',
    keywords=["django", "egemsoft", "sso", "esefsso"],
    install_requires=[
        "Django",
        "webservices",
        "requests",
        "esef-auth==1.0.0.0",
        "django-simple-sso==0.9.3"
    ],
    dependency_links=[
        "https://github.com/egemsoft/esef-auth/tarball/master/#egg=1.0.0.0",
        "https://github.com/egemsoft/django-simple-sso/tarball/master#egg=0.9.3",
    ],

    packages=[
        'esef_sso_client',
        'esef_sso_client.models',
        'esef_sso_server',
        'esef_sso_server.models',
    ],
    include_package_data=True,
    zip_safe=False,
    platforms=['any'],
)

编辑2:

这是点子日志;

Downloading/unpacking esef-auth==1.0.0.0 (from esef-sso==1.0.0.0)
  Getting page https://pypi.python.org/simple/esef-auth/
  Could not fetch URL https://pypi.python.org/simple/esef-auth/: 404 Client Error: Not Found
  Will skip URL https://pypi.python.org/simple/esef-auth/ when looking for download links for esef-auth==1.0.0.0 (from esef-sso==1.0.0.0)
  Getting page https://pypi.python.org/simple/
  URLs to search for versions for esef-auth==1.0.0.0 (from esef-sso==1.0.0.0):
  * https://pypi.python.org/simple/esef-auth/1.0.0.0
  * https://pypi.python.org/simple/esef-auth/
  Getting page https://pypi.python.org/simple/esef-auth/1.0.0.0
  Could not fetch URL https://pypi.python.org/simple/esef-auth/1.0.0.0: 404 Client Error: Not Found
  Will skip URL https://pypi.python.org/simple/esef-auth/1.0.0.0 when looking for download links for esef-auth==1.0.0.0 (from esef-sso==1.0.0.0)
  Getting page https://pypi.python.org/simple/esef-auth/
  Could not fetch URL https://pypi.python.org/simple/esef-auth/: 404 Client Error: Not Found
  Will skip URL https://pypi.python.org/simple/esef-auth/ when looking for download links for esef-auth==1.0.0.0 (from esef-sso==1.0.0.0)
  Could not find any downloads that satisfy the requirement esef-auth==1.0.0.0 (from esef-sso==1.0.0.0)
Cleaning up...
  Removing temporary dir /Users/ahmetdal/.virtualenvs/esef-sso-example/build...
No distributions at all found for esef-auth==1.0.0.0 (from esef-sso==1.0.0.0)
Exception information:
Traceback (most recent call last):
  File "/Users/ahmetdal/.virtualenvs/esef-sso-example/lib/python2.7/site-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/Users/ahmetdal/.virtualenvs/esef-sso-example/lib/python2.7/site-packages/pip/commands/install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/Users/ahmetdal/.virtualenvs/esef-sso-example/lib/python2.7/site-packages/pip/req.py", line 1177, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "/Users/ahmetdal/.virtualenvs/esef-sso-example/lib/python2.7/site-packages/pip/index.py", line 277, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
DistributionNotFound: No distributions at all found for esef-auth==1.0.0.0 (from esef-sso==1.0.0.0)

似乎,它没有使用中的源dependency_links


问题答案:

您还需要确保您也包括依赖项install_requires

这是一个例子 setup.py

#!/usr/bin/env python
from setuptools import setup

setup(
    name='foo',
    version='0.0.1',
    install_requires=[
        'balog==0.0.7'
    ],
    dependency_links=[
        'https://github.com/balanced/balog/tarball/master#egg=balog-0.0.7'
    ]
)

这是您的示例的问题setup.py

您在设置的依赖项链接中缺少鸡蛋名称。

你有

https://github.com/egemsoft/esef-auth/tarball/master/#egg=1.0.0.0

你需要

https://github.com/egemsoft/esef-auth/tarball/master/#egg=esef-auth-1.0.0.0



 类似资料:
  • If you have just checked out a package from version control, you will need to install those dependencies. If you are adding dependencies for your project, then those dependencies are automatically ins

  • 我已经创建了作曲家包,composer.json是 现在,当我安装 包,我需要那个作曲家安装所有需要的包: 但它没有安装它。 我尝试作曲家更新,作曲家安装。有人能帮忙吗? C项目omposer.json看起来像 我能做的是,作曲家自动安装所有软件包所需的依赖项????谢谢你的建议。

  • 问题内容: 我已经建立了两个RPM套件 取决于存在的文件,它在RPM软件包中正确反映,如下所示: 由于缺少依赖项,安装失败。 如何确保在安装过程中自动安装? 我确实按照此处所述尝试了该选项,但对我而言不起作用。 还有其他办法吗? 谢谢你的帮助。 问题答案: 创建一个(本地)存储库,并使用它来为您解决依赖关系。 CentOS Wiki有一个漂亮的页面,提供有关此操作方法的信息。CentOS Wiki

  • 问题内容: 有什么方法可以强制安装pip python软件包,而忽略所有无法满足的依赖关系吗? (我不在乎这样做有多“错”,我只需要这样做,除了逻辑和推理之外……) 问题答案: 点有一个开关。您应该使用它。 有关更多信息,请运行,在这里您将看到以下行:

  • 当我在项目中使用Intellij Idea安装scala测试依赖项时,我收到以下错误 错误:导入SBT项目时出错: 我做错了什么?

  • 首先,有一些相关的帖子并不真正适合我的问题。 Composer不会安装依赖项 还有一些。 我有一个Symfony项目,其中包含一些私人包。这些是风投公司参考的: 这和预期的一样。但是,私有包yyy引用了另一个私有包(我们称之为sub-yyy),它也由package composer.json文件中的类型vcs引用。 如果我运行作曲家安装失败与消息: 问题1-yyyy的安装请求- 潜在原因: 包名中