Code Shipping - Dependency (Coupling)
See:
When you install a package, or declaring a dependency, you need to specify an package id that's known in Python as a requirement specifier.
It's the setuptools and pkg_resources package syntax
PyPiProjectName [extra's] [comparison_operator version_identifier]
where:
Example of requirement specifiers:
docutils >= 0.3
# comment lines and \ continuations are allowed in requirement strings
BazSpam ==1.1, ==1.2, ==1.3, ==1.4, ==1.5, \
==1.6, ==1.7 # and so are line-end comments
# Extra
PEAK[FastCGI, reST]>=0.5a4
setuptools==0.5a7
https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-extras
Library dependencies are specified in the install_requires property of the Python - setup.py file.
It takes a string or list of strings containing requirement specifiers specifying what other distributions need to be installed.
When the project is installed by pip, this is the specification that is used to install its dependencies.
Example:
each requirement must begin on a new line.
install_requires=required,
install_requires=['projectname>=0.3']
install_requires=[
'projectnameA>=1,<2',
'projectnameB>=2'
]
where:
https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-platform-specific-dependencies
Example of file:
requests==2.11.1
websocket-client==0.37.0
...
Pipfile is the configuration file of the pipenv utility and is aimed to an application. (Weird). Ie a library that will never be reused by others.
Pipfile and its sister Pipfile.lock are a replacement for the existing standard pip's requirements.txt file
See:
pip install -e .
pip install -e git+https://somerepo/bar.git#egg=bar
where:
Installation without dependency
pip install XXX --no-deps
With a Pip Requirements Files in a virtual environment or global
pip install -r requirements.txt
pip list --format=columns
Package Version
---------------- -------
Flask 0.11.1
pip 18.1
requests 2.11.1
setuptools 39.0.1
...