What is the fastest way to generate a list of all prime numbers below a given value N?

I am looking for the most efficient and fastest way to generate a list of all prime numbers below a given limit N in Python. I am seeking the help of the Python community to suggest alternative ways to achieve this. I have already tried a few methods, such as the Sieve of Eratosthenes and trial division, but I am still looking for a faster solution that can handle large values of N. Here is an example code snippet that I have used to generate primes using the Sieve of Eratosthenes:

def primes_sieve(n):
    sieve = [True] * (n+1)
    sieve[0] = sieve[1] = False
    for i in range(2, int(n**0.5)+1):
        if sieve[i]:
            sieve[i*i::i] = [False] * ((n-i*i)//i + 1)
    return [i for i in range(2, n+1) if sieve[i]]

This code works well for smaller values of N , but it can be quite slow for larger values. I would appreciate any suggestions on how to improve the efficiency of this code or any alternative methods to generate prime numbers in Python.