Python中文
首页
教程
问答
标签
搜索
登录
注册
程序在IDLE上运行正常,但在命令行失败。
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在使用Python的ctypes库与Windows DLL进行对话。当我从IDLE、Ipython或输入到交互式python解释器中运行代码时,它可以正常工作。当我从Windows命令提示符运行相同的代码时,它崩溃了。为什么单向崩溃,而单向成功?</strong></p> <p>下面是我正在运行的代码的简化版本:</p> <pre><code>import ctypes, os, sys print "Current directory:", os.getcwd() print "sys.path:" for i in sys.path: print i PCO_api = ctypes.oledll.LoadLibrary("SC2_Cam") camera_handle = ctypes.c_ulong() print "Opening camera..." PCO_api.PCO_OpenCamera(ctypes.byref(camera_handle), 0) print " Camera handle:", camera_handle.value wSensor = ctypes.c_uint16(0) print "Setting sensor format..." PCO_api.PCO_SetSensorFormat(camera_handle, wSensor) PCO_api.PCO_GetSensorFormat(camera_handle, ctypes.byref(wSensor)) mode_names = {0: "standard", 1:"extended"} print " Sensor format is", mode_names[wSensor.value] </code></pre> <p>当我从IDLE或Ipython运行此代码时,得到以下结果:</p> ^{pr2}$ <p>从Windows命令提示符运行此代码时,将得到以下结果:</p> <pre><code>Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\Admin>cd Desktop\code C:\Users\Admin\Desktop\code>C:\Python27\python.exe test.py Current directory: C:\Users\Admin\Desktop\code sys.path: C:\Users\Admin\Desktop\code C:\Windows\system32\python27.zip C:\Python27\DLLs C:\Python27\lib C:\Python27\lib\plat-win C:\Python27\lib\lib-tk C:\Python27 C:\Python27\lib\site-packages Opening camera... Camera handle: 43742176 Setting sensor format... Traceback (most recent call last): File "test.py", line 18, in <module> PCO_api.PCO_GetSensorFormat(camera_handle, ctypes.byref(wSensor)) File "_ctypes/callproc.c", line 936, in GetResult WindowsError: [Error -1609945086] Windows Error 0xA00A3002 C:\Users\Admin\Desktop\code> </code></pre> <p>注意,一些DLL调用是有效的,直到我设置传感器格式,我们才偏离轨道。在</p> <p>通过检查我调用的DLL附带的文档,我看到Windows错误解码为“缓冲区的wSize太小了”(sic)。我不确定这是否相关。以防万一,<a href="http://www.pco.de/fileadmin/user_upload/db/download/MA_DCSDKWINE_114.pdf" rel="nofollow">here's the API documentation</a>。在</p> <p>当我看到“worksinidle,fails at prompt”时,我假设一定有一些环境变量设置不同。我应该检查什么?在</p> <p>编辑:</p> <p>我补充道系统路径以及操作系统getcwd()到测试代码。在</p> <p>编辑:</p> <p>不确定这是否重要,但是我加载的DLL(SC2_凸轮.dll)在当前工作目录中。在这个目录中还有另一个DLL(sc2_cl_me4.DLL),我相信它是由sc2加载的_凸轮.dll. 如果我从这个目录中删除sc2_cl_me4.dll,则不会对sc2进行任何调用_凸轮.dll工作,包括PCO峎OpenCamera。在</p> <p>编辑:</p> <p>如果我把上面的代码输入到“vanilla”交互式python解释器中,上面的代码也可以工作。我不需要IDLE或ipython来让它工作。只打电话'python.exe测试.py'失败了。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您的系统上是否安装了多个版本的python?当您以交互方式运行和从文件运行时,您可能使用了不同的版本。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
10 回答
如何添加表示整数的擦边字符串?
9 回答
如何添加要在Bokeh中使用的新font.ttf文件?
2 回答
如何添加要显示的矩阵XY轴编号和XY轴
2 回答
如何添加计数?
2 回答
如何添加计数器函数?
5 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
2 回答
如何添加计数器来跟踪while循环中的月份和年份?
2 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
6 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
7 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
10 回答
如何添加评论拉梅尔亚姆
5 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
6 回答
如何添加谷歌地点自动完成到Flask?
7 回答
如何添加超时、python discord bot
10 回答
如何添加超过1dp的检查
8 回答
如何添加距离方法
1 回答
如何添加跟随游戏的敌人精灵
8 回答
如何添加路径以便python可以找到程序?
2 回答
如何添加身份验证/安全性以使用happybase访问HBase?
3 回答