Here is as an attempt but the derivative fails:
In [5]: i = sm.symbols('i', integer=True)
In [6]: s=sm.Sum(sm.Indexed('r',i),(i,1,3))
In [7]: s
Out[7]: Sum(r[i], (i, 1, 3))
In [8]: s.diff(sm.Indexed('r',i))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-8-f8ca8cff3c71> in <module>()
----> 1 s.diff(sm.Indexed('r',i))
/home/moorepants/anaconda/lib/python2.7/site-packages/sympy/core/expr.pyc in diff(self, *symbols, **assumptions)
2773 new_symbols = list(map(sympify, symbols)) # e.g. x, 2, y, z
2774 assumptions.setdefault("evaluate", True)
-> 2775 return Derivative(self, *new_symbols, **assumptions)
2776
2777 ###########################################################################
/home/moorepants/anaconda/lib/python2.7/site-packages/sympy/core/function.pyc in __new__(cls, expr, *variables, **assumptions)
1016 from sympy.utilities.misc import filldedent
1017 raise ValueError(filldedent('''
-> 1018 Can\'t calculate %s-th derivative wrt %s.''' % (count, v)))
1019
1020 if all_zero and not count == 0:
ValueError:
Can't calculate 1-th derivative wrt r[i].