Python C扩展 使用setup.py build无法构建

rzyk2005 2014-07-02 08:57:20
环境:windows XP,C编译器 VS2010
我用C语言写的函数想用作python的扩展,调用的setup.py build后提示c1 : fatal error C1083: 无法打开源文件:“example.c”: No such file or directory error: command '"D:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.exe"' failed with exit status 2
编译器无法找到源文件?需要如何配置?将C源文件和setup.py放在什么目录下?
...全文
847 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_su 2014-07-04
  • 打赏
  • 举报
回复
import就崩溃,那把PyInit_xxx贴出来看看。感觉win下还是用vc建个方案编译为妥,有问题可以在里面进行调试方便很多...
angel_su 2014-07-03
  • 打赏
  • 举报
回复
编译器说找不到example.c,那就是当前工作目录不是源文件所在位置,或者文件名不对类似example.c.txt已知扩展名被windows隐藏了...
rzyk2005 2014-07-03
  • 打赏
  • 举报
回复
我试过了,不行,还是找不到源文件,如下信息: running build running build_ext building '_example' extension D:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.exe /c /nologo /Ox /MD / W3 /GS- /DNDEBUG "-I.c E:\TEMPLATE\pyextend" -IC:\Python34\include -IC:\Python34 \include /Tcexample.c /Fobuild\temp.win32-3.4\Release\example.obj example.c c1 : fatal error C1083: 无法打开源文件:“example.c”: No such file or directory error: command '"D:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.exe"' f ailed with exit status 2 你做过这样的测试吗?
  • 打赏
  • 举报
回复
引用 7 楼 rzyk2005 的回复:
我放在python的路径下就可以了,已经生成了 _example.lib和_example.pyd,现在的问题是在python环境里输入"import _example"回车便会崩溃,找不出原因
放在Python路径下可以,就说明你的Python搜索路径没有正确被添加,编译的时候就找不到相关文件 、 现在运行失败也是一个道理,Python默认的搜索路径只有Python安装路径和当前运行路径 你可以试着将_example.pyd所在目录添加到sys.path中
  • 打赏
  • 举报
回复
引用 7 楼 rzyk2005 的回复:
我放在python的路径下就可以了,已经生成了 _example.lib和_example.pyd,现在的问题是在python环境里输入"import _example"回车便会崩溃,找不出原因
.pyd相关的DLL文件没有在 System32 下或者在 .pyd 文件当前文件夹, 或者没有在 python 的 sys path 中存在.
rzyk2005 2014-07-03
  • 打赏
  • 举报
回复
我放在python的路径下就可以了,已经生成了 _example.lib和_example.pyd,现在的问题是在python环境里输入"import _example"回车便会崩溃,找不出原因
  • 打赏
  • 举报
回复
# -*- coding: cp936 -*- from distutils.core import setup, Extension module1 = Extension('example', sources = ['example.c']) setup (name = 'example', version = '1.0', description = 'this is a demo package', ext_modules = [module1], author = 'Arthur') 这样试过了没问题 可以啊 不行你就添加一下文件搜索路径 Extension('example', sources = ['example.c'],include_dirs = [".c 搜索路径"])
rzyk2005 2014-07-02
  • 打赏
  • 举报
回复
什么路径?我这里根本就没有路径这一说,你提供的地址也无法解决这个问题, from distutils.core import setup, Extension setup (name="example", version="1.0", # py_modules = ['example.py'], ext_modules = [ Extension("_example", ["example.c", "pyexample.c" ]) ] )
  • 打赏
  • 举报
回复
应该.c 和setup.py 放在同级目录下没错 路径应该用" "扩起来 防止空格等出错,'\'替换为'\\' 防止意外的转义 http://www.pythontab.com/html/2013/pythonhexinbiancheng_0830/551.html
The_Third_Wave 2014-07-02
  • 打赏
  • 举报
回复
D:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.exe 路径不正确吧,使用\\。即:D:\\Program Files\\Microsoft Visual Studio 10.0\\VC\\BIN\\cl.exe
本套课程系大喵在**2020年****录制课程,大喵将带着大家使用vscode这款轻量级编辑器神器,快速上手Python高效开发、调试及单元测试的插件扩展和 VSCode IDE环境配置;什么是 vscode 编辑器?Visual Studio Code(以下简称vscode)是一个轻量且强大的跨平台开源代码编辑器(IDE),支持Windows,Mac OS X和Linux。内置JavaScript、TypeScript和Node.js支持,而且拥有丰富的插件生态系统,可通过插件面板来方便快捷的安装插件来支持javascript、C++、C#、Python、PHP等其他语言。什么是 python ?Python,它是一门编程语言,截止到目前python已经广泛应用在:无人驾驶、个人助理、金融、电商、医疗、教育等各大领域。尤其是在 Web开发、自动化运维与测试、游戏服务器开发方面有着先天的优势。目前许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。VSCode + PythonVSCode毫无疑问是一款非常优秀的IDE,而Python则无疑是一门使用领域相当广泛,非常强大的高级语言;那我们如何把这两者结合起来,用**美的IDE编写最棒的语言,优雅与**,强强结合,气冲入虹,势不可挡。课程内容主要包括:01. 课程内容介绍02. VSCode IDE 介绍03. 为什么推荐使用 VSCode IDE 04. Python 语言基础介绍 05. 为什么选择 Python 语言06. VSCode和Python 强强联手07. 课程插件扩展介绍08. Python扩展安装及介绍09. Python扩展代码测试10. AREPL安装和介绍11. AREPL for Python 特点介绍12. AREPL 代码功能测试13. autoDocstring 安装和介绍14. autoDocstring 代码测试使用15. python test explorer 安装和介绍16. Python pytest 测试和使用

37,718

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧