Nix如何在 nixpkgs 中使用新的
如何在 nixpkgs 中使用新的 pythonOutputDistHook
?
我已經嘗試了很多方法來讓我的項目創建一個
result-dist
帶有輪子的文件夾,我可以發佈到 PyPI。不知何故,即使我使用的是 nixpkgs 版本pythonOutputDistHook
,我也只能得到一個result
文件夾,而不是result-dist
文件夾。到目前為止我的調查:
pythonOutputDistHook
是可選的,基於withDistOutput
.withDistOutput
如果format
包含 之一,則為真["pyproject" "setuptools" "flit"]
。format ? "setuptools"
而且我的程式碼沒有設置format
,所以pythonOutputDistHook
應該包括在內。- 我已經驗證了
pythonOutputDistHook
它在我的 nixpkgs中:$ 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
有沒有什麼東西會
pkgs
在其中一個 Nix 文件中註入不同的參數?
Nixpkgs (
stdenv.mkDerivation
) 中的標準建構器可以創建多個輸出。一些典型輸出是預設輸出,out
還有lib
、和。任何派生都可以指定它創建的輸出。輸出可以直接引用:bin``dev``doc
$ nix-build -A bash.dev /nix/store/pji7665awsg1fcp2irhnfm3508lvsgh0-bash-5.1-p16-dev
從最近開始, (在幕後
buildPythonPackage
呼叫)創建了一個輸出,其中包含用於分發的工件,特別是輪子:stdenv.mkDerivation``dist
$ 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