Packaging, ```setuptools``` and imports
__init__.py
files help reduce redundancy in import
https://stackoverflow.com/questions/17457782/how-to-structure-python-packages-without-repeating-top-level-name-for-import
extra to be added
from keynote
cookiecutter
tox
travis CI
setuptools
python setup.py install
install into site-package directory
python setup.py develop
create symlinks to site-package directory(The same as things I did before)
setup.py
arguments in setup()
py_modules
list of single python modules.
packages
list of folders that contain the modules
./setup.py develop
or pip install -e .
Develope mode
Creates symlinks in site-package path so that reinstallation is not neede when code changes
data files
MANIFEST.in add files to soure distribution. So NOT in wheel but in source. useful when data is used in build time.
include_package_data = True + MANIFEST.in include data file into the final package directory. Useful when data is used in the runtime
only package_data include data into both source distribution and final package directory
setup(
...
package_data = {
dir_of_data: [data_if_self], # the data's location is relative to setup.py
},
)