我需要64位版本的非标准python模块才能使用我的python(2.7)64位代码,但我试图编译源代码:
我编译了setup_Assignment.py
文件以使用SDK 7.0获取AoN.c文件
然后我使用C编译器(即cl.exe)编译AoN.c
。
但是在编译C文件期间发生了这个错误:
fatal error c1083: cannot open include file:
'pyconfig.h': No such file or directory
以上是使用64位编译器完成的,尽管出现了错误,仍然生成了.pyd(dll)文件,这反过来又产生了这个错误:
ValueError: Buffer dtype mismatch, expected 'ITYPE_t' but got 'long long'
当我尝试使用64位python 2.7运行脚本时(我使用的是Windows 7机器):
下面是编译的安装文件和我得到的错误。我可以帮助找出错误指向的内容。如果需要python脚本我愿意提出来,此时我觉得我已经有很多了。
谢谢!
setup_Assignment.py:
from __future__ import division, print_function, absolute_import
import sys
sys.dont_write_bytecode = True
import numpy as np
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
from Cython.Build import cythonize
import subprocess
import Cython.Compiler.Options
Cython.Compiler.Options.annotate = True
setup(
cmdclass={'build_ext': build_ext},
ext_modules = [
Extension("AoN",
["AoN.pyx"],
include_dirs=[np.get_include()])
]
)
运行编译文件后出错:
Traceback (most recent call last):
File "C:/Users/AMAMIFE/Desktop/obi/new.py", line 453, in <module>
main()
File "C:/Users/AMAMIFE/Desktop/obi/new.py", line 437, in main
zones, loads=AoN.AllOrNothing(graph,demand,i) #And assign
File "AoN.pyx", line 58, in AoN.AllOrNothing (AoN.c:2138)
_Ordering_and_Forward_Star(a_nodes,
File "AoN.pyx", line 177, in AoN._Ordering_and_Forward_Star (AoN.c:3059)
cdef _Ordering_and_Forward_Star(np.ndarray[ITYPE_t, ndim=1, mode='c'] a_nodes, #A_Node/B_Node
ValueError: Buffer dtype mismatch, expected 'ITYPE_t' but got 'long long'