You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pip安装依赖psycopg2-binary的自定义包报错,能否无需预安装该依赖?

问题背景

我的Python包的setup.py文件中声明了如下依赖:

install_requires=['psycopg2-binary==2.9.9', ...]

在虚拟环境中执行以下命令安装该自定义包时出现错误:

执行命令

pip install --index-url https://some-region.pkg.dev/myproject/mypackage/simple/ mypackage

错误信息

ERROR: Could not find a version that satisfies the requirement psycopg2-binary==2.9.9 (from mypackage) (from versions: none)
ERROR: No matching distribution found for psycopg2-binary==2.9.9

手动执行pip install psycopg2-binary==2.9.9可正常安装该依赖,提前安装后再执行自定义包的安装命令就能成功完成。

核心问题

能否无需提前安装psycopg2(-binary),直接完成自定义包的安装(其他依赖无此问题)?


解决方案

可以通过以下几种方法解决,无需提前手动安装依赖:

  1. 命令行添加PyPI作为额外索引源
    问题本质是你指定了私有仓库作为唯一索引源,pip仅会在该私有仓库内查找psycopg2-binary,但该依赖只存在于PyPI中。执行安装时同时指定PyPI作为额外索引:

    pip install --index-url https://some-region.pkg.dev/myproject/mypackage/simple/ --extra-index-url https://pypi.org/simple/ mypackage
    

    这样pip会优先从私有仓库拉取你的自定义包,再从PyPI获取psycopg2-binary这类公共依赖。

  2. 在setup.py中指定依赖的专属索引源(需pip 19.0+支持)
    修改setup.py的依赖声明,给psycopg2-binary直接指定PyPI源:

    install_requires=[
        'psycopg2-binary==2.9.9 @ https://pypi.org/simple/psycopg2-binary/',
        # 其他依赖项
    ]
    

    这种方式无需在命令行添加额外参数,pip会自动从指定源拉取该依赖。

  3. 配置pip默认索引(适合频繁从私有仓库安装的场景)
    编辑pip的配置文件,设置默认的主索引和额外索引:

    • Linux/macOS路径:~/.config/pip/pip.conf
    • Windows路径:%APPDATA%\pip\pip.ini
      添加以下内容:
    [global]
    index-url = https://some-region.pkg.dev/myproject/mypackage/simple/
    extra-index-url = https://pypi.org/simple/
    

    之后只需执行pip install mypackage,pip就会自动从两个源分别拉取对应包。


内容的提问来源于stack exchange,提问作者rook

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 02:36:12