首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nix openai python dev-environment构建失败

Nix openai python dev-environment构建失败
EN

Stack Overflow用户
提问于 2020-11-04 17:57:33
回答 1查看 96关注 0票数 3

我正在尝试使用nix创建一个包含openai pypi包的python37开发环境。

这个question was originally on reddit,但我找不到答案,线程中的活跃度非常低。

使用我得到的提示和语言框架文档,我设法想出了以下表达式:

default.nix:

代码语言:javascript
复制
with import<nixpkgs>{};
( let
    openai = pkgs.callPackage ./release.nix {
              inherit pkgs; 
              buildPythonPackage = pkgs.python37Packages.buildPythonPackage;
            };
  in pkgs.python37.buildEnv.override rec {
    extraLibs = [ pkgs.python37Packages.requests openai ];
  }
).env

release.nix

代码语言:javascript
复制
{ pkgs, buildPythonPackage }:

buildPythonPackage rec{
  pname="openai";
  version="0.2.6";

  src=fetchTarball{
    url="https://files.pythonhosted.org/packages/59/2d/b3bc2aa663b2c376f073fd141e128ecfb47f3aff95ccee284a74d85a1ef8/openai-0.2.6.tar.gz";
    sha256="0cplrzfw3i6yxcd35ijfjkx9jbcvkvzn5jn5b8s657a8myhm6kav";
  };

  propagateBuildInputs = [ pkgs.python37Packages.requests ];
  doCheck=false;

  meta = { # only for testing the env right now
    homepage="...";
    description="...";
    license = "...";
    maintainers= [];
  };
}

然而,这给我留下了(我猜是pip-)错误

代码语言:javascript
复制
Processing ./openai-0.2.6-py3-none-any.whl
ERROR: Could not find a version that satisfies the requirement requests>=2.20; python_version >= "3.0" (from openai==0.2.6) (from versions: none)
ERROR: No matching distribution found for requests>=2.20; python_version >= "3.0" (from openai==0.2.6)
builder for '/nix/store/ncnga4fcxl15xyvv3f325f9g0q45mqvr-python3.7-openai-0.2.6.drv' failed with exit code 1

这让我大吃一惊,因为propagateBuildInputs = [ pkgs.python37Packages.requests ];清楚地说明了包requests (版本2.22.0 )应该在构建时就存在。

我对buildPythonPackage函数有什么误解,导致它无法正常工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-14 22:12:18

progagatedBuildInputs更改为另一个名称(如progagateBuildInputs )会导致它被忽略,因此它包含的任何依赖项(即requests)都不会被找到。例如:

代码语言:javascript
复制
yubico-client/default.nix

  propagateBuildInputs = [ requests ];

ERROR: Could not find a version that satisfies the requirement requests<3.0,>=2.7 (from yubico-client==1.13.0) (from versions: none)
ERROR: No matching distribution found for requests<3.0,>=2.7 (from yubico-client==1.13.0)

  propagatedBuildInputs = [ requests ];

$ nix-build -I nixpkgs=~/git/nixpkgs '<nixpkgs>' -k -A python37Packages.yubico-client
/nix/store/0yjz8smgmjr0006nmka6wliy01z8av7m-python3.7-yubico-client-1.13.0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64677802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档