-
-
Notifications
You must be signed in to change notification settings - Fork 18.1k
Open
Labels
0.kind: bugSomething is brokenSomething is broken0.kind: enhancementAdd something new or improve an existing system.Add something new or improve an existing system.2.status: stalehttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.mdhttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md6.topic: documentationMeta-discussion about documentation and its workflowMeta-discussion about documentation and its workflow6.topic: pythonPython is a high-level, general-purpose programming language.Python is a high-level, general-purpose programming language.
Description
This is a placeholder for general improvements to Python packaging infrastructure in Nixpkgs.
Documentation
- why do we use
propagatedBuildInputs? - how to generate
PYTHONPATHout of packages? (makePythonPathin nix, andtoPythonPathin bash) - explain a bit in more detail how python setup hook works and that packages not using
buildPythonPackageneed to addpythontopropagatedBuildInputs(Python: some packages don't propagatepythoncausing "nix-shell -p" to fail #17679, Python: split buildPythonPackage into two functions #18143) -
wrapPython - how to use virtualenv with Nix? (Better documentation for python.buildEnv / virtualenv #5623, Document how to customize modules available to virtualenv #66)
Python modules
- add support for modules to all python interpreters (Python 3 dependency bloat #12333, Python: use separate output for tkinter #19309)
- enable
readlineby default (adds 16M to the closure (nixpkgs python repl isn't very terminal-friendly #17607, Python: use separate output for tkinter #19309) - enable
ncursesby default (Python 2.7 Full: sqlite3 module doesn't work in virtualenv #492 (comment), Python: use separate output for tkinter #19309) - enable
sqliteby default (Python 2.7 Full: sqlite3 module doesn't work in virtualenv #492 (comment), Python: use separate output for tkinter #19309) -
tkinter.tixdoesn't yet function with$ nix-shell -p 'python.withPackages(ps: [ps.tkinter])' --run "python -c 'import Tix; Tix.Tk()'". Python tix module #21643 (review)
Build functions
- join
pythonandbuildPythonPackagesetup-hooks -
namePrefixshould be default empty and prefixed withpythonX.X-only insidepython-packages.nix(buildPythonApplication: use new function for Python applications #13124) - refactor
buildPythonPackageintopython.mkDerivation(similar tocabal.mkDerivation) - helpers for python software that doesn't use
distutils/setuptools(Python: split buildPythonPackage into two functions #18143) - convert all
mkDerivationusingdistutilstobuildPythonPackage -
convert allTypicallybuildPythonPackagenot usingdistutilstomkDerivationbuildPythonPackageorbuildPythonApplicationwithformat = "other";should be used. See the docs. - replace
magicalSedExpression(Replace magic sed for Python argv[0] with a python wrapper. #11168) -
buildPythonPackageshouldn't usepostFixup(buildPythonPackage uses postFixup for itself #9204, 85a87f5)
Packages
- modernize packages in
python-modulesfolder to be either a module or an application (versioned pythonX.Y- prefix #1468) -
pypi2nix: a tool to generate Nix expressions for Python packages. - fixed-point combinator for
python-packages.nix(Python: Fixed-point combinator #17428) - autogenerated data with urls to and hashes for all PyPI packages (Python: buildPyPIPackage and generated data #16005, Autogenerated data in Nixpkgs #15480).
Tests
- it should be easier to run different test runners (
setup.py/nosetests/py.test) (python buildPythonPackage: check and run correct test command #11715) - hook for testing importing modules (f7e28bf)
- import all modules after building (python improvement: import all modules after the build is finished #3821, Python: default test runner fails often because it imports all modules #14849)
- reduce closure sizes by not installing tests (Python: reduce closure sizes by not installing tests #12379)
Issues to resolve
- Depend on a Python application without adding the libraries to
PYTHONPATH(Depending on a python package without adding it to PYTHONPATH #11423) - Tox (tox package broken #15224)
-
virtualenvshould usepythonFull(Make virtualenv use pythonFull, not python #7134, Python: use separate output for tkinter #19309) - unify Python interpreters (together with
pypy) (Python: move interpreters #17339) - Nix replacement for
ctypes.util.find_library([python] ctypes.util.find_library should return full path to the library #7307) -
setuptoolsnamespaces are broken (give collisions) (python: setuptools namespaces are broken (give collisions) #2412, python-wrapper broken by recent re-factoring #1826) -
data_filesupstream issue (Patch upstream to correctly handle install_data/data_files in Python #4968) -
zc.recipe.eggis broken - Circular dependencies
-
pypyPYTHONPATHis incomplete (pypyPackages: wrapped scripts are missing paths from PYTHONPATH #12948) - Python on Nix is not compatible with
manylinux1(Python on Nix claims to be manylinux compatible #18484, Add support for PEP 513 "manylinux1" wheels #71935)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
0.kind: bugSomething is brokenSomething is broken0.kind: enhancementAdd something new or improve an existing system.Add something new or improve an existing system.2.status: stalehttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.mdhttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md6.topic: documentationMeta-discussion about documentation and its workflowMeta-discussion about documentation and its workflow6.topic: pythonPython is a high-level, general-purpose programming language.Python is a high-level, general-purpose programming language.