如何将本地存储库与pip install一起用于在dh_virtualen中使用setup_requires的包

2024-03-29 02:03:44 发布

您现在位置:Python中文网/ 问答频道 /正文

(抱歉,这个有点长,但我想描述一下我的问题和目前为止我发现的问题)

我依赖于一些python包(jira、PyNaCl)。这些使用setup_所需的,我似乎无法用dh_virtualenv来控制。 我的问题是,我必须使用本地mini-buildd从源代码构建整个东西。在建造时我与PyPi.python.org我没有可用的本地代理。 如果我可以控制easy_安装,我可以尝试将其指向我的本地存储库,我将其包含在debian源代码包中。在

但我的问题是: setup\u requires(distutils)忽略我传递给本地存储库pip的参数。(请参见pip.pypa.io)。 Mini-buildd为每个构建构建构建一个全新的chroot,所以我不知道如何向Distutils Configuration Files中的任何一个添加额外的行。 如果没有这一点,我会收到如下错误消息:

Running setup.py (path:/tmp/pip-build-vSvelX/PyNaCl/setup.py) egg_info for package PyNaCl
Running command python setup.py egg_info
Download error on https://pypi.python.org/simple/cffi/: [Errno 110] Connection timed out -- Some packages may not be found!
Couldn't find index page for 'cffi' (maybe misspelled?)

那么,到目前为止,我成功地建立了什么呢?在

有一个本地存储库(./requirements)w包含所有焦油gz我的包所依赖的文件(pip freeze,pip download--no binary:all:)包含在debian源代码包中。

^{pr2}$

在一个新的virtualenv构建中,只要我有:

  • 与pypi的连接。在
  • Distutils的工作配置文件

删除配置文件和internet连接,例如通过

export HTTPS_PROXY=invalid; export http_proxy=invalid

上述pip命令将中止,并显示如下消息:

Running setup.py (path:/tmp/pip-build-88bVhg/PyNaCl/setup.py) egg_info for package PyNaCl
Running command python setup.py egg_info
Download error on https://pypi.python.org/simple/pycparser/: [Errno -3] Temporary failure in name resolution -- Some packages may not be found!
Couldn't find index page for 'pycparser' (maybe misspelled?)
Download error on https://pypi.python.org/simple/: [Errno -3] Temporary failure in name resolution -- Some packages may not be found!
No local packages or working download links found for pycparser

要解决它,我可以:

  1. 进入破碎的tarball,执行python setup.py egg_info,构建一个新tarball并上传新tarball
  2. 添加$HOME/。pydistutils.cfg包含an easy_install配置。在

为什么我不满意?在

  1. 建筑鸡蛋信息在各自的tarball中,这意味着我必须接触我不维护的包,更新可能是“有趣的”
  2. 使用配置文件似乎对我不起作用,因为:
    • python目录是在构建过程中新设置的
    • 我没有迷你建筑的主目录
    • 修改设置.cfg我必须有先进的知识,我的主要包将在哪里结束。我还得操纵外国包裹。在
  3. 在构建时获取到PyPi缓存或镜像的网络连接也不是一个选项

所以我的问题是,是否有另一种方法可以让配置选项更容易安装,或者让pip安装忽略egg_info部分,同时仍然将直接需求安装到针对dh_virtualenv的virtualenv中?在


Tags: pippyorginfopypiforvirtualenv源代码
1条回答
网友
1楼 · 发布于 2024-03-29 02:03:44

我找到了解决这个问题的办法。没有做我在问题中要求的,但解决了潜在的问题。在

dhüvirtualenv提供“预安装”选项。使用这个我可以建立没有任何网络连接。在

所以我在debian/rules中添加了以下内容:

override_dh_virtualenv  preinstall ' requirement=./requirements-preinstall.txt'

/要求-预安装.txt包含distutils尝试下载但失败的包。不知何故,如果有多个安装轮,它似乎是可行的。在

相关问题 更多 >