{
lib,
fetchPypi,
}:
let
pkgs = import <nixpkgs> {};
callPackage = pkgs.callPackage;
qrcode_terminal = callPackage ../qrcode_terminal {
buildPythonPackage = pkgs.python3Packages.buildPythonPackage;
fetchPypi = pkgs.fetchPypi;
};
python = pkgs.python3;
pythonPackages = python.pkgs;
requirements-httpx = pkgs.python311Packages.httpx.overrideAttrs (oldAttrs: {
version = "0.26.0";
src = fetchPypi {
pname = "httpx";
version = "0.26.0";
sha256 = "sha256-RRtVww1RheprI8LHk6v5uyN9Kn37kBztb/aa037B368=";
};
});
requirements-pillow = pkgs.python311Packages.pillow.overrideAttrs (oldAttrs: {
version = "10.2.0";
src = pkgs.fetchurl {
url = https://dlink.host/sharepoint/aHR0cHM6Ly9pdmVzbmNrdS1teS5zaGFyZXBvaW50LmNvbS9wZXJzb25hbC93dF9pdmVzX25ja3VfZWR1X3R3L19sYXlvdXRzLzUyL2Rvd25sb2FkLmFzcHg_c2hhcmU9RVduLU5KLWFhWmRFbnhSWDlJOGxFQ2tCbm81c1IxZUtRYm14VWdJSzRVMmZQUQ.tar.gz;
sha256 = "sha256-6H8LLHgVfhLXaGsn1jwHD9ZdmU6N2ubzKODc9KDNAH4=";
};
});
in
pythonPackages.buildPythonPackage rec {
pname = "bilibili-api-python";
version = "16.2.0";
src = pythonPackages.fetchPypi {
inherit pname version;
hash = "sha256-ecv9lzp2L13seBosahgnglaZP8YZCD/13nlTPP8LCs0==";
};
requiem_ins = [qrcode_terminal requirements-pillow requirements-httpx];
propagatedBuildInputs = with pkgs.python311Packages; [
pylint
pip
wheel
aiohttp
beautifulsoup4
colorama
lxml
pyyaml
brotli
qrcode
requests
APScheduler
rsa
tqdm
yarl
pycryptodomex
qrcode_terminal
types-pillow
]++ requiem_ins;
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
installPhase = ''
cat > setup.py << EOF
from setuptools import setup, find_packages
setup(
name='bilibili-api-python',
version='${version}',
license='MIT',
author='Nemo2011',
author_email='yimoxia@outlook.com',
url='https://pypi.org/project/bilibili-api-python',
description='Python API for Bilibili',
platforms=['any'],
packages=['bilibili-api','bilibili_api.data','bilibili_api.data.api','bilibili_api.data.geetest'],
entry_points={
'console_scripts': [
'bilibili-api-docs = bilibili_api.tools.opendocs.__main__:main',
'ivitools = bilibili_api.tools.ivitools.__main__:main' # 替换为你的主函数
],
},
include_package_data=True,
)
EOF
echo "installing bilibili-api-python..."
python setup.py install --prefix=temp
mkdir -p $out
cp -r temp/* $out
'';
meta = with pkgs.lib; {
description = "An event publishing system";
homepage = "https://pypi.org/project/zope.event/";
license = pkgs.lib.licenses.zpl20;
maintainers = with pkgs.lib.maintainers; [ goibhniu ];
};
}
I copy the file to the $out directory or it says dist doesn’t exist, what is the variable of this dist in the nixos config file?
Executing pythonRemoveTestsDir
Finished executing pythonRemoveTestsDir
error: builder for ‘/nix/store/wv21q7qfpa0jj45jgsvzi13zhxhb662s-python3.11-bilibili-api-python-16.2.0.drv’ failed to produce output path for output ‘dist’ at ‘/nix/store/wv21q7qfpa0jj45jgsvzi13zhxhb662s-python3.11-bilibili-api-python-16.2.0.drv.chroot/nix/store/gk0zbrl70i3yk2wbc9alas1y425aj3h0-python3.11-bilibili-api-python-16.2.0-dist’
But the qrcode_terminal module I introduced at the beginning doesn’t have this error,
{ lib, buildPythonPackage, fetchPypi ,fetchurl}:
let
pkgs = import <nixpkgs> {};
in
buildPythonPackage rec {
pname = "qrcode_terminal";
version = "0.8"; # 替换为实际的版本号
propagatedBuildInputs = with pkgs.python311Packages; [
pip
types-pillow
pillow
qrcode
];
src = fetchurl {
url = "https://files.pythonhosted.org/packages/96/62/2422c088b7219db9f78c912418254db9896d1b20ab15e83aae2821419a65/qrcode-terminal-0.8.tar.gz";
sha256 = "sha256-Hitp5mK5NG6Y3ZWYMDPp1Dz/BkPYr9oSYF9RVCjmZsA=";
};
postPatch = ''
sed -i "/install_requires/d" setup.py
'';
meta = with lib; {
description = "A Python library for generating QR codes";
homepage = "https://pypi.org/project/qrcode-terminal/";
license = pkgs.lib.licenses.zpl20;
};
}