我正在使用anaconda3shell来执行cython脚本,以便以后可以使用Python调用我的函数。我有出版商的源代码,是用C/C++编写的,没有任何C/C++编程经验
因此,我想使用cython来包装C/C++文件。我正在使用Windows 10和基于x64的操作系统、Visual studio 2017和anaconda3来执行我的所有python模块
我的setup.py文件如下所示:
#setup.py
from setuptools import setup,Extension
from Cython.Build import cythonize
extensions=[Extension("IrisAO_Python", [".\\DM files\\IrisAO_Python.pyx"],
include_dirs = [".\\DM files\\"],
library_dirs = [".\\DM files\\"],
libraries=["IrisAO.Devices"])]
setup(
name = "irisao",
ext_modules = cythonize(extensions),
packages = ['DM files'],
package_dir ={'DM files':'.\\DM files'},
py_modules=['__init__','IrisAO_Python_MirrorControl']
)
我敦促研究此问题的专家从我的github存储库下载所有文件。如果不下载文件,对问题的调试将毫无用处https://github.com/abani-nayak/IrisAO-for-Windows/tree/editing
接下来,我使用anaconda3 shell编译扩展setup.py:
(base) C:\Users\Abani\Documents\DM setup\Final>python setup.py build_ext --inplace
然而,我得到一个致命的链接错误LNK181。错误预览可在此处找到:
cl : Command line warning D9027 : source file 'Kits\10\include\10.0.17763.0\winrt -IC:\Program' ignored
cl : Command line warning D9024 : unrecognized source file type 'Files', object file assumed
cl : Command line warning D9027 : source file 'Files' ignored
cl : Command line warning D9024 : unrecognized source file type '(x86)\Windows', object file assumed
cl : Command line warning D9027 : source file '(x86)\Windows' ignored
cl : Command line warning D9027 : source file 'Kits\10\include\10.0.17763.0\cppwinrt /EHsc /TpraisePythonException.cpp /Fobuild\temp.win-amd64-3.8\Release\raisePythonException.obj' ignored
cl : Command line warning D9021 : no action performed
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO "/LIBPATH:.\DM files\" /LIBPATH:C:\Users\Abani\anaconda3\libs /LIBPATH:C:\Users\Abani\anaconda3\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\um\x64" IrisAO.Devices.lib /EXPORT:PyInit_IrisAO_Python "build\temp.win-amd64-3.8\Release\.\DM files\IrisAO_Python.obj" build\temp.win-amd64-3.8\Release\raisePythonException.obj /OUT:build\lib.win-amd64-3.8\IrisAO_Python.cp38-win_amd64.pyd "/IMPLIB:build\temp.win-amd64-3.8\Release\.\DM files\IrisAO_Python.cp38-win_amd64.lib"
LINK : fatal error LNK1181: cannot open input file 'Files.obj'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\link.exe' failed with exit status 1181
(base) C:\Users\Abani\Documents\DM setup\Final>
错误显示:无法打开输入文件“Files.obj”。我不知道为什么它会说无法打开输入文件,尽管我的“DM Files”文件夹中没有这样的文件“Files.obj”
因此,我请求专家提供必要的帮助。同样,执行cython脚本所需的所有文件都可以在这里找到:https://github.com/abani-nayak/IrisAO-for-Windows/tree/editing
我已经找到了问题的答案。我做了一些尝试错误,但我不知道为什么它应该这样工作。不过,我们欢迎对这个问题提出有价值的建议以及专家们的回答。因此,我做了以下工作:
我将setup.py文件移到了“DM files”文件夹中,该文件夹包含所有c/c++文件。接下来,我修改了setup.py文件,如下所示:
我在anaconda3中运行了执行setup.py的常用命令:“python setup.py build\u ext inplace”
命令执行时没有任何错误。以下是预览:
相关问题 更多 >
编程相关推荐