Move to using a requirements.txt to install the python packages. (#21430)
Move to using a requirements.txt to install the python packages. This makes it easy to keep the documentation and actual package dependencies in sync. Fixes #18453
This commit is contained in:
parent
39a8638ec0
commit
d7b7cbac1a
5 changed files with 25 additions and 4 deletions
|
@ -1,6 +1,7 @@
|
||||||
prune ticket_stubs
|
prune ticket_stubs
|
||||||
prune hacking
|
prune hacking
|
||||||
include README.md COPYING
|
include README.md COPYING
|
||||||
|
include requirements.txt
|
||||||
include examples/hosts
|
include examples/hosts
|
||||||
include examples/ansible.cfg
|
include examples/ansible.cfg
|
||||||
include lib/ansible/module_utils/powershell.ps1
|
include lib/ansible/module_utils/powershell.ps1
|
||||||
|
|
|
@ -330,9 +330,11 @@ If you don't have pip installed in your version of Python, install pip::
|
||||||
|
|
||||||
$ sudo easy_install pip
|
$ sudo easy_install pip
|
||||||
|
|
||||||
Ansible also uses the following Python modules that need to be installed [1]_::
|
Ansible also uses the following Python modules that need to be installed [1]_:
|
||||||
|
|
||||||
$ sudo pip install paramiko PyYAML Jinja2 httplib2 six
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ sudo pip install -r ./requirements.txt
|
||||||
|
|
||||||
To update ansible checkouts, use pull-with-rebase so any local changes are replayed.
|
To update ansible checkouts, use pull-with-rebase so any local changes are replayed.
|
||||||
|
|
||||||
|
@ -383,4 +385,4 @@ You can also use "sudo make install".
|
||||||
`irc.freenode.net <http://irc.freenode.net>`_
|
`irc.freenode.net <http://irc.freenode.net>`_
|
||||||
#ansible IRC chat channel
|
#ansible IRC chat channel
|
||||||
|
|
||||||
.. [1] If you have issues with the "pycrypto" package install on Mac OSX, which is included as a dependency for paramiko, then you may need to try "CC=clang sudo -E pip install pycrypto".
|
.. [1] If you have issues with the "pycrypto" package install on Mac OSX, then you may need to try ``CC=clang sudo -E pip install pycrypto``.
|
||||||
|
|
10
requirements.txt
Normal file
10
requirements.txt
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Note: this requirements.txt file is used to specify what dependencies are
|
||||||
|
# needed to make the package run rather than for deployment of a tested set of
|
||||||
|
# packages. Thus, this should be the loosest set possible (only required
|
||||||
|
# packages, not optional ones, and with the widest range of versions that could
|
||||||
|
# be suitable)
|
||||||
|
jinja2
|
||||||
|
PyYAML
|
||||||
|
paramiko
|
||||||
|
pycrypto >= 2.6
|
||||||
|
setuptools
|
9
setup.py
9
setup.py
|
@ -11,6 +11,13 @@ except ImportError:
|
||||||
" install setuptools).")
|
" install setuptools).")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
with open('requirements.txt') as requirements_file:
|
||||||
|
install_requirements = requirements_file.read().splitlines()
|
||||||
|
if not install_requirements:
|
||||||
|
print("Unable to read requirements from the requirements.txt file"
|
||||||
|
"That indicates this copy of the source code is incomplete.")
|
||||||
|
sys.exit(2)
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='ansible',
|
name='ansible',
|
||||||
version=__version__,
|
version=__version__,
|
||||||
|
@ -21,7 +28,7 @@ setup(
|
||||||
license='GPLv3',
|
license='GPLv3',
|
||||||
# Ansible will also make use of a system copy of python-six and
|
# Ansible will also make use of a system copy of python-six and
|
||||||
# python-selectors2 if installed but use a Bundled copy if it's not.
|
# python-selectors2 if installed but use a Bundled copy if it's not.
|
||||||
install_requires=['paramiko', 'jinja2', "PyYAML", 'setuptools', 'pycrypto >= 2.6'],
|
install_requires=install_requirements,
|
||||||
package_dir={ '': 'lib' },
|
package_dir={ '': 'lib' },
|
||||||
packages=find_packages('lib'),
|
packages=find_packages('lib'),
|
||||||
package_data={
|
package_data={
|
||||||
|
|
|
@ -54,4 +54,5 @@
|
||||||
/lib/ansible/template/
|
/lib/ansible/template/
|
||||||
/lib/ansible/utils/
|
/lib/ansible/utils/
|
||||||
/lib/ansible/vars/
|
/lib/ansible/vars/
|
||||||
|
/setup.py
|
||||||
/test/
|
/test/
|
||||||
|
|
Loading…
Reference in a new issue