Status: Accepted
Owner: asmeurer
Labels: Type-Defect Priority-Medium Documentation Milestone-Release0.7.0
New issue 2160 by asmeurer: List of dependencies
http://code.google.com/p/sympy/issues/detail?id=2160
We should include in the README, and probably in the docs somewhere too, a
list of all the "dependencies" of SymPy. Now, obviously, SymPy's only
dependency is Python, but there are several optional dependencies like
IPython and gmpy that are not required but extent the capabilities of SymPy
if they are installed.
I am putting this here instead of just doing it and making a pull request
because I don't know exactly how things work with things like numpy and
scipy, and I also don't know if I am forgetting anything. So far, I have
this:
"""
Dependencies
------------
One of the fundamental design decisions behind SymPy is that it should not
have any external dependencies besides Python to install. Therefore, the
only real "dependency" of SymPy is an installation of Python 2.4, 2.5, 2.6,
or 2.7 (note that Python 2.4 support is deprecated and will no longer work
in the next release).
However, there are several packages that are not required to use SymPy, but
that will enhance SymPy if they are installed. These packages are:
- IPython (http://ipython.scipy.org/moin/). IPython is a third party
Python interactive shell that has many more features over the built-in
Python interactive shell, such as tab-completetion and [what other
important features should I mention here?]. If IPython is installed,
isympy will automatically use it. Otherwise, it will fall back to the
regular Python interactive shell. You can override this behavior by
setting the -c option to isympy, like `isympy -c python`.
- gmpy (http://code.google.com/p/gmpy/). gmpy is a Python wrapper around
the GNU Multiple Precision Arithmetic Library (GMP). If gmpy is installed,
it may make certain operations in SymPy faster, because it will use gmpy as
the ground type instead of the built-in Python ground types. If gmpy is
not installed, it will fall back to the default Python ground types. You
can override this behavior by setting the SYMPY_GROUND_TYPES environment
variable, such as `SYMPY_GROUND_TYPES=python isympy`. [Note: this should be
an option to isympy!]
- Cython. [What exactly is the situation with Cython?]
- Numpy. [Ditto]
- Scipy. [Ditto]
- [Code generation dependencies?]
- [Other dependencies?]
Note that mpmath and pyglet, our floating point and plotting libraries
respectively, are included with SymPy, so it is unnecessary to install
them. Indeed, SymPy will always use the version of mpmath or pyglet that
comes with SymPy, even if a newer version is installed in the system. This
is done for compatibility reasons.
"""
OK, the text in [] are comments. I need help from others writing the rest
of this. Note that I do not want to include any development dependencies
here (like Sphinx), because the user does not care about that (maybe we
could have that list somewhere else in our development docs).
But basically for the others, explain what happens when they are installed
and what happens when they are not (and how to override, if relevant).
I just realized that the best way to do this would be through the wiki. So
if anyone has anything to add to this, please do it at
https://github.com/sympy/sympy/wiki/Dependencies. And then when we have it
finished we can add it to the README and regular docs.
--
You received this message because you are subscribed to the Google Groups
"sympy-issues" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sympy-issues?hl=en.