nixpkgs와 함께 새로운 `pythonOutputDistHook`을 사용하는 방법은 무엇입니까?

nixpkgs와 함께 새로운 `pythonOutputDistHook`을 사용하는 방법은 무엇입니까?

나는 프로젝트를 완료하기 위해 여러 가지 방법을 시도했습니다.result-distPyPI에 게시할 수 있는 휠이 있는 폴더 생성. 어떻게 든 nixpkgs 버전을 사용하고 있지만pythonOutputDistHook그 안에는 폴더 result가 아닌 폴더 만 표시됩니다 result-dist.

지금까지 내가 조사한 내용은 다음과 같습니다.

  1. pythonOutputDistHook선택 사항이며 를 기반으로 합니다 withDistOutput.

  2. withDistOutputformat다음 중 하나가 포함되어 있으면 참입니다 ["pyproject" "setuptools" "flit"].

  3. format ? "setuptools"내 코드가 설정되어 있지 않으므로 format포함 pythonOutputDistHook해야 합니다.

  4. pythonOutputDistHook들어있는 걸 확인했어요내 닉스 포장:

    $ cd nixpkgs
    $ git checkout 9c14978f845f33b152f722709caf42148580a30c
    HEAD is now at 9c14978f845 Merge master into staging-next
    $ git grep pythonOutputDistHook
    pkgs/development/interpreters/python/hooks/default.nix:  pythonOutputDistHook = callPackage ({ }:
    pkgs/development/interpreters/python/mk-python-derivation.nix:, pythonOutputDistHook
    pkgs/development/interpreters/python/mk-python-derivation.nix:      pythonOutputDistHook
    pkgs/top-level/python-packages.nix:    pythonOutputDistHook
    

pkgsNix 파일 중 하나에 다른 매개변수를 주입하는 것이 있습니까 ?

답변1

Nixpkgs( )의 표준 빌더는 stdenv.mkDerivation여러 출력을 생성할 수 있습니다. 일부 일반적인 출력은 기본 출력 이지만 , 및 도 out있습니다 . 모든 파생물은 생성되는 출력을 지정할 수 있습니다. 출력을 직접 참조할 수 있습니다.libbindevdoc

$ nix-build -A bash.dev
/nix/store/pji7665awsg1fcp2irhnfm3508lvsgh0-bash-5.1-p16-dev

최근에 ( buildPythonPackage비하인드 씬이라고 함) 배포용 아티팩트, 특히 바퀴가 포함된 출력을 생성했습니다.stdenv.mkDerivationdist

$ find $(nix-build -A python3.pkgs.pytest.dist)
/nix/store/flg6ahbbmppq5vpjcxdhzs9fz7dx86vq-python3.10-pytest-7.1.3-dist
/nix/store/flg6ahbbmppq5vpjcxdhzs9fz7dx86vq-python3.10-pytest-7.1.3-dist/pytest-7.1.3-py3-none-any.whl

관련 정보