Number of maximal PAIRS-values
There is a significant flaw in your code; this line:

pairs = [0] * 5


only occurs once, and I couldn't spot pairs being emptied anywhere.



The code to create the list of names is very inefficient, this:

name = ""
names = list()
...
for i in range(0,len(datas)):
    if (datas[i] == "\n"):
        names.append(name)
        name = ""
    else:
        name += datas[i]


Could be written as:

names = data.split("\n")


Note also that for char in data would have been a more Pythonic loop construct. 



You can use itertools.combinations to get pairs of names:

for name1, name2 in combinations(names, 2):




You can use collections.Counter to simplify getting the initial numbers:

counter = Counter(name1.lower())
counter.update(name2.lower())
pairs = [sum_digits(counter[c]) for c in "pairs"]




Your compute_percent only works when exactly five letters are chosen, you can make it much more general (and shorter):

def compute_percent(pairs):
    while len(pairs) &gt; 2:
        pairs = [sum_digits(n1+n2) for n1, n2 in zip(pairs, pairs[1:])]
    return (10 * pairs[0]) + pairs[1]




I would split the if __name__ == "__main__" section into more, smaller functions, something like:


get_names to extract the names from the file;
perfect_pairs to pair them off; and
score_pair to calculate the score.


Then all you have in the last block is:

print(len(perfect_pairs(get_names())))