Memoized Prime Generator
1. Review


There are no docstrings. What do these functions do? How do I call them? What do they return?
The function odd_numbers_from could be implemented using itertools.count, like this:

def odd_numbers_from(n):
    """Generate the odd numbers greater than or equal to n."""
    return itertools.count(n + 1 - (n % 2), 2)

But if you started with earlier_primes=[2,3] then you could avoid the special case here.
The function takeWhile is built into Python under the name itertools.takewhile.
takePrimes is only called from primes, so would make more sense to be inlined there.
A Python object that can be looped over using the for statement (like the argument to takePrimes) is properly known as an iterable, not a iterator.
Instead of not 0 in expression, write all(expression).


2. Revised code

from itertools import count, islice, takewhile

def primes(earlier_primes=[2, 3]):
    """Generate the prime numbers.

    &gt;&gt;&gt; list(islice(primes(), 10))
    [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

    """
    yield from earlier_primes
    for n in count(earlier_primes[-1] + 2, 2):
        if all(n % p for p in takewhile(lambda p: p**2 &lt;= n, primes())):
            earlier_primes.append(n)
            yield n