VS2008导入错误内部(py)readlin中的简单swigpython示例

2024-10-04 07:34:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近一直在用python学习swig的基本知识,遇到了一个奇怪的错误:在命令windows中运行python时导入模块会返回这个错误。在

>>> import simpFunc
Readline internal error
Traceback (most recent call last):
  File "D:\Dev\Python\winx64\lib\site-packages\pyreadline\console\console.py", line 671, in hook_wrapper_23
    res = ensure_str(readline_hook(prompt))
  File "D:\Dev\Python\winx64\lib\site-packages\pyreadline\rlmain.py", line 342, in readline
    return self.mode.readline(prompt)
  File "D:\Dev\Python\winx64\lib\site-packages\pyreadline\modes\emacs.py", line 116, in readline
    self._print_prompt()
  File "D:\Dev\Python\winx64\lib\site-packages\pyreadline\rlmain.py", line 298, in _print_prompt
    n = c.write_scrolling(self.prompt, self.prompt_color)
  File "D:\Dev\Python\winx64\lib\site-packages\pyreadline\console\console.py", line 289, in write_scrolling
    w, h = self.size()
TypeError: 'NoneType' object is not iterable

虽然在这个错误之后,可以正确地使用modules函数,并且在脚本中运行它时根本没有错误。在

我想知道是否有人能解释一下这件事。我当前正在使用visualstudio2008x64命令提示符来构建和链接此。Python版本2.7.2,Swig版本2.0.4

不仅仅是对于这个特定的例子,我也试过几个c例子,它们都有这个错误。在

下面列出了我正在使用的文件。在

在辛普芬克.cpp在

^{pr2}$

辛普芬克

#include <iostream>

void printNum(int aNum);

辛普芬克一世

/* File : simpFunc.i */
%module simpFunc
%{
#include "simpFunc.h"
%}
%include "simpFunc.h"

下面是我用来创建.pyd的命令

swig.exe -python -c++ simpFunc.i
cl /c simpFunc.cpp simpFunc_wrap.cxx /I"D:\Dev\Python\winx64\include"
link /dll /out:.\_simpFunc.pyd /LIBPATH:D:\Dev\Python\winx64\libs simpFunc.obj simpFunc_wrap.obj

Tags: inpydevselflibpackages错误line
1条回答
网友
1楼 · 发布于 2024-10-04 07:34:44

这是一个已知的问题 issue8275

问题的根源是 加载dll后,GetConsoleScreenBufferInfo始终返回零, 所以大小没有回报,每个人都不快乐。在

source of the problem

如果自我.hout=GetStdHandle(STD_OUTPUT_HANDLE)在size函数的开头再次调用,就在调用GetConsoleScreenBufferinfo之前

用这个 console.py

相关问题 更多 >