<p>我使用<a href="http://shed-skin.blogspot.com/" rel="nofollow">Shed Skin</a>:只需下载、解压缩、运行init bat和<a href="http://code.google.com/p/shedskin/wiki/docs#Generating_an_Extension_Module" rel="nofollow">compile your Python code</a>。</p>
<p>如果这不起作用,并且您可以让Microsoft的C编译器环境正常工作,请尝试<a href="http://cython.org" rel="nofollow">Cython</a>。<a href="http://slowchop.com/2008/05/04/cython-getting-started-and-optimisation-tutorial/" rel="nofollow">This tutorial</a>将普通的Python扩展与其生成的C版本进行比较。更新摘录:</p>
<p>cêprime.pyx:</p>
<pre><code>def calculate(long limit):
cdef long current
cdef long divisor
primes = []
divisor = 0
for current in range(limit):
previous = []
for divisor in range(2, current):
if current % divisor == 0:
break
if divisor == current - 1:
primes.append(current)
return primes
</code></pre>
<p>设置.py:</p>
<pre><code>from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
setup(
name = 'PrimeTest',
ext_modules=[
Extension('c_prime', ['c_prime.pyx'])
],
cmdclass = {'build_ext': build_ext}
)
</code></pre>
<p>编译:</p>
<p><a href="http://wiki.cython.org/64BitCythonExtensionsOnWindows" rel="nofollow">^{<cd1>}</a></p>
<p>测试时间:</p>
<pre><code>from timeit import Timer
t = Timer('c_prime.calculate(10000)', 'import c_prime')
reps = 5
print(sum(t.repeat(repeat=reps, number=1)) / reps)
</code></pre>