gpt4 book ai didi

python - 在 Nixpkgs 中,是什么让 Python 派生成为应用程序而不是库?

转载 作者:行者123 更新时间:2023-11-30 22:28:41 29 4
gpt4 key购买 nike

我正在尝试为 Nix 打包一个 python 应用程序,但我发现大多数文档都假设我想要打包一个库。

为了做到这一点,我查看了 Rednotebook 示例(除了我碰巧知道它是用 python 编写的之外没有任何特殊原因),可以在 python-packages 中找到该示例。 ,但由于该文件太大,以下是相关部分:

  redNotebook = buildPythonPackage rec {
name = "rednotebook-1.8.1";

src = pkgs.fetchurl {
url = "mirror://sourceforge/rednotebook/${name}.tar.gz";
sha256 = "00b7s4xpqpxsbzjvjx9qsx5d84m9pvn383c5di1nsfh35pig0rzn";
};

# no tests available
doCheck = false;

propagatedBuildInputs = with self; [ pygtk pywebkitgtk pyyaml chardet ];

meta = {
homepage = http://rednotebook.sourceforge.net/index.html;
description = "A modern journal that includes a calendar navigation, customizable templates, export functionality and word clouds";
license = licenses.gpl2;
maintainers = with maintainers; [ tstrobel ];
};
};

我的推导如下:

{ pkgs ? import <nixpkgs> {} }:
let
requirements = import ./nix/requirements.nix { inherit pkgs; };
in
pkgs.python35Packages.buildPythonPackage rec {
name = "package-name";
version = "1.0.0";
namePrefix = "";
src = ./.;
doCheck = false;
propagatedBuildInputs = builtins.attrValues requirements.packages;
}

requirements.nixpypi2nix 的输出,requirements.packages 的类型为“派生列表”。尽管如此,当我 cd 进入 Rednotebook 的结果存储路径时,还是有一个包含一些包装器脚本的 /bin 目录。我的应用程序的存储路径只有一个 lib ,没有 /bin

如何告诉 Nixpkgs 我有申请?

最佳答案

buildPythonPackagebuildPythonApplication函数,但最终,它们都调用 mkPythonDerivation .

您可以引用的带有简单 Nix 包的 Python 应用程序是 Ranger ;它使用buildPythonApplication。生成的派生包含 /nix/store/PACKAGE/bin/

中的包装器

关于python - 在 Nixpkgs 中,是什么让 Python 派生成为应用程序而不是库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46546811/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com