[Nix-dev] Using/packaging Python-modules
Roland Koebler
rk-list at simple-is-better.org
Wed Dec 21 15:18:55 CET 2016
Hi,
I'm trying to create nix-packages from some of my own Python-modules.
So, I followed the Nixpkgs manual, but it did not work as described:
Section 8.10.1.2.1. Python packaging on Nix:
- 1st shell.nix-example: local toolz package [1]
1. variable "licenses" is not found:
user at host:~/tmp/_$ nix-shell
error: undefined variable ‘licenses’ at /home/rk/tmp/_/shell.nix:15:15
(use ‘--show-trace’ to show detailed location information)
2. after removing the license-line, I can start a nix-shell, but the toolz
package is not available:
user at host:~/tmp$ nix-shell
...
[nix-shell:~/tmp]$ which python3.5
/nix/store/c5c9fs9vh12rr0lvbss1a813xwlwv0zh-python3-3.5.2/bin/python3.5
[nix-shell:~/tmp]$ python3.5
Python 3.5.2 (default, Jun 25 2016, 21:38:40)
[GCC 5.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import toolz
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'toolz'
- 2nd shell.nix-examle: local toolz package + numpy [2]
1. variable "licenses" is not found (as above)
2. tests fail:
...
======================================================================
ERROR: exceptions (unittest.loader._FailedTest)
----------------------------------------------------------------------
AttributeError: module 'toolz.curried' has no attribute 'exceptions'
======================================================================
ERROR: exceptions (unittest.loader._FailedTest)
----------------------------------------------------------------------
AttributeError: module 'toolz.curried' has no attribute 'exceptions'
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (errors=2)
builder for ‘/nix/store/pa77cfky1b0f2knzn2k2czdaxz6wdym6-python3.5-toolz-0.7.4.drv’ failed with exit code 1
cannot build derivation ‘/nix/store/pi89rb0v178avb0jjdm352vad42a1f7a-python3-3.5.2-env.drv’: 1 dependencies couldn't be built
error: build of ‘/nix/store/pi89rb0v178avb0jjdm352vad42a1f7a-python3-3.5.2-env.drv’ failed
/home/user/.nix-profile/bin/nix-shell: failed to build all dependencies
So, how can I develop with local Python packages or package local Python modules?
Additionally, I've found several broken links:
I found several broken links:
- buildPythonPackage https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/generic/default.nix
- http://pythonhosted.org/setuptools/setuptools.html#development-mode
should probably point to http://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode
- http://nixos.org/nixpkgs/manual/#ssec-python-development
This anchor des not exist; maybe #development-mode is meant.
- A link-checker (https://validator.w3.org/checklink) reported even more broken links.
best regards
Roland
[1]
with import <nixpkgs> {};
pkgs.python35Packages.buildPythonPackage rec {
name = "toolz-${version}";
version = "0.7.4";
src = pkgs.fetchurl{
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
};
meta = {
homepage = "http://github.com/pytoolz/toolz/";
description = "List processing tools and functional utilities";
license = licenses.bsd3;
maintainers = with maintainers; [ fridh ];
};
}
[2]
with import <nixpkgs> {};
( let
toolz = pkgs.python35Packages.buildPythonPackage rec {
name = "toolz-${version}";
version = "0.7.4";
src = pkgs.fetchurl{
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
};
meta = {
homepage = "http://github.com/pytoolz/toolz/";
description = "List processing tools and functional utilities";
license = licenses.bsd3;
maintainers = with maintainers; [ fridh ];
};
};
in pkgs.python35.withPackages (ps: [ps.numpy toolz])
).env
More information about the nix-dev
mailing list