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.

Reply via email to