Notes for Scientific Python Packaging ===================================== - Please add constructive, factual information below. For example, *doing x, results in y.* - Please avoid adding opinions during this edit round. - The goal in this round of edits is to surface information and consolidate in one place. Installation ------------ - Using `python -m pip` in place of `pip` avoids confusion when `python` and `pip` point to executables that are in different environments. - Using `pip install [-e] .` instead of `python setup.py [develop|install]` enables pip to observe what `setup.py` is doing to the environment. - [name=@carreau] It is symetric with installing other packages, for teaching you only need to rememeber that `.` is "this directory", which you might already know. - [name=@carreau] Using `pip install .` will be future proof for non-`setup.py` based project. - Add your points to the list Packaging --------- - Using `python setup.py sdist bdist_wheel` is the documented recommendation. - @pradyunsg: probably not. We should start recommending the use of pep517 here, since we’re trying to move away from direct setup.py invocation. - Using `python -m pep517.build -s -b` is an alternative. [What are the advantages?] - The main advantage would be, utilization of newer standards that allow tooling to work better with each other. - @pradyunsg: pip ~will~ might grow a pip build command. I don’t know if we’d want to mention that here, just yet. - Add your points to the list