【问题标题】:Dependencies from git aren't being installed?没有安装来自 git 的依赖项?
【发布时间】:2015-04-16 22:18:07
【问题描述】:

p0 依赖于p1,而后者又依赖于p2p2 没有安装,其他的都安装了。

即:当我通过 Heroku 部署 p0 时,我得到一个引用 p2ImportError

请注意,所有人的requirements.txt 中都有这样的行:

git+http://github.com/project/package

此外,我尝试将所有内容放入 install_requiresdependency_links,但未能在 GitHub 上找到 pacakge。甚至尝试写my own deps_installer()

【问题讨论】:

  • 您可以使用 --editable 标志将瓶子添加到bars requirements.txt,请参阅docs
  • 哦,所以我需要-e 标志? - 目前只有git+ 行...
  • 使用 -e 标志将以可编辑模式安装包,换句话说,它将创建一个指向 packacke 的符号链接,而不是将其添加到 pythons 站点包目录。为自己是个白痴道歉,可能还有更多。您究竟是如何在 bar 中导入瓶子的?

标签: python python-2.7 pip setuptools distutils


【解决方案1】:

Pip 如果您在命令行上明确告诉它使用pip install -r requirements.txt,则查看requirements.txt。请注意,您可以为该文件命名任何您喜欢的名称,称其为 requirements.txt 是一种约定,而不是包装中任何地方使用的标准。

请注意,user-api 有一个到 sql-models 的依赖链接,但实际上并没有在 install_requires 中列出它,所以这不会在 atm 中执行任何操作。

【讨论】:

  • 谢谢,不过我已经尝试了 12 多种不同的组合(请参阅我的提交历史或this comp.lang.python link)。没有工作。我确定这只是我的配置错误,但不确定如何解决。
【解决方案2】:

看起来问题出在:

package_dir

在我的setuptool.setup 函数调用中。

删除该关键字参数完全解决了我的问题。

另外我把我所有的要求都放在p0的“requirements.txt”中。

【讨论】:

    【解决方案3】:

    有几个问题。

    1. 使用install_requires 参数声明依赖关系setup(),而不是requirements.txt。 pypa 有a description of the differences,pip 开发人员 Donald Stufft 有some elaboration here

    2. 您的__version__ 处理不起作用:bettertutors_rest_api 的 setup.py 包含 from bettertutors_rest_api import __version__,它将导入 Bettertutors_rest_api.py,但 Bettertutors_rest_api.py 将在导入时尝试创建一个 Bottle() 对象,如果还没有安装瓶子,它将失败,因此 setup.py 将失败而不是获取版本。 pypa 有advice on single-sourcing versions(我使用选项3)。

    【讨论】:

    • 谢谢,我已经删除了对__version__ 的所有使用。仍然无法解析 git 链接(使用 install_requiresdependency_links)。有什么线索吗?
    • 再次更新了我的存储库,这次仅使用requirements.txt 来处理我的 github 依赖项。现在回到它不安装包 3 级别。即:p0 依赖于 p1,p1 依赖于 p2。 p2 未安装。
    • 明确地说,“pip install foo”完全忽略了与 foo 发行版捆绑的任何 requirements.txt。
    • 如果我想从 github 引入 3+ 层包的依赖项,有什么解决方案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 2016-11-02
    • 1970-01-01
    • 2014-02-17
    相关资源
    最近更新 更多