Nix openai python dev-environment build failure

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

这个问题最初是在reddit上提出的,但我找不到答案,而且该帖子的活跃度非常低。

根据我在那里的提示和语言框架的文档,我设法编写了以下表达式:

default.nix:

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

{ 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的)错误

Processing ./openai-0.2.6-py3-none-any.whlERROR: 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(在nixpkgs中的版本为2.22.0)应该在构建时存在。

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


回答:

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

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

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注