Python cl:命令行错误D8003:使用Cython将.py编译为.pyd时缺少源文件名

Python cl:命令行错误D8003:使用Cython将.py编译为.pyd时缺少源文件名,python,visual-studio,cython,pyd,Python,Visual Studio,Cython,Pyd,在使用“python setup.py build\u ext--inplace”编译hello.py时,我遇到了这个错误。我搜索了错误,但一无所获。有人解决过类似的问题吗?os=win7-64,python=3.6.2,cython=0.27.1,visual stdudio=2015 # hello.py def say_hello_to(name): print("Hello %s!" % name) # setup.py from distutils.core import s

在使用“python setup.py build\u ext--inplace”编译hello.py时,我遇到了这个错误。我搜索了错误,但一无所获。有人解决过类似的问题吗?os=win7-64,python=3.6.2,cython=0.27.1,visual stdudio=2015

# hello.py
def say_hello_to(name):
    print("Hello %s!" % name)

# setup.py
from distutils.core import setup
from Cython.Build import cythonize

setup(
  ext_modules = cythonize("hello.py")
)


E:\Crawler>python setup.py build_ext --inplace
running build_ext
building 'hello' extension
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox
 /W3 /GL /DNDEBUG /MD "-ID:\Program Files (x86)\Python36-32\include" "-ID:\Progr
am Files (x86)\Python36-32\include" "-IC:\Program Files (x86)\Microsoft Visual S
tudio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10
240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-
IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program F
iles (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\
Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files\Microsoft SDKs\Windo
ws\v7.0\Include\" /Tchello.c /Fobuild\temp.win32-3.6\Release\hello.obj
cl : Command line error D8003 : missing source filename
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\
cl.exe' failed with exit status 2

我认为这并不能解决您的问题,但您应该将其称为“hello.pyx”而不是“hello.py”,否则在导入helloIt时python会感到困惑看起来您的模块根本没有被cythonized,但c编译器是直接调用的。如果在命令行上调用python-mcython hello.pyx(将hello.py重命名为hello.pyx之后),会发生什么情况?它将像以前一样获得.c文件。我今天安装了一个win10虚拟机,终于得到了.pyd。整个事情真是让人头疼。我不认为这会解决你的问题,但是你应该叫它“hello.pyx”而不是“hello.py”,否则当你导入Helloi时python会感到困惑。看起来你的模块根本没有被cythonized,但是c编译器是直接调用的。如果在命令行上调用python-mcython hello.pyx(将hello.py重命名为hello.pyx之后),会发生什么情况?它将像以前一样获得.c文件。我今天安装了一个win10虚拟机,终于得到了.pyd。整件事真让人头疼