我会使用Shed Skin:只需下载,解压缩,运行init bat和compile your Python code。
如果这样不起作用,并且您可以使用Microsoft的C编译器环境,请尝试Cython。 This tutorial将正常的Python扩展与其生成的C版本进行比较。更新摘要:
c_prime.pyx:
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
setup.py:
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}
)
编译:
python setup.py build_ext --inplace --compiler=msvc
test_prime.py:
from timeit import Timer
t = Timer('c_prime.calculate(10000)', 'import c_prime')
reps = 5
print(sum(t.repeat(repeat=reps, number=1))/reps)
添加*如何*甚至最基本的例子失败。 – 2011-01-07 10:42:33
例如:在遵循每个方向后,当我尝试构建example_nt时,出现链接器错误,它找不到python26.lib。然后我尝试使用与我的版本的python分发的python26.lib,但这只导致了两个链接器错误:1> example.obj:错误LNK2019:无法解析的外部符号__imp___Py_NoneStruct在函数_ex_foo中引用 1> example.obj:error LNK2019:无法解析的外部符号__imp__Py_InitModule4在函数_medixample – Alexandros 2011-01-07 10:50:49