我想使用以下Python包,这需要ncurses
:https://pypi.python.org/pypi/blessings
我安装了Windows版本的Anaconda Python,并指定为我的Python发行版。
我也有一个Cygwin安装。当我在提供的Cygwin终端中运行python -i
时,Anaconda Python启动 - 太棒了!
如果我尝试import blessings
,我会收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "A:\anaconda\lib\site-packages\blessings\__init__.py", line 5, in <module>
import curses
File "A:\anaconda\lib\curses\__init__.py", line 15, in <module>
from _curses import *
ImportError: No module named _curses
好吧,所发生的事情是,Anaconda Python可以理解的是没有接受Cygwin的诅咒。
现在,尝试以某种方式使Anaconda知道ncurses
,只有在Cygwin终端的使用环境中才有意义吗?我怀疑它不是,我在概念上遗漏了什么?
答案 0 :(得分:2)
遗憾的是,您无法在CPython中使用Cygwin Python的curses模块。由于以下原因(以及更多),两个Pythons的模块不兼容:
Windows Python直接调用Win32 API(通过Visual Studio 2008,2010或2015 C-Runtimes),而Cygwin Python链接到Cygwin POSIX API,该API位于Visual Studio 6.0 C-Runtime之上。在一个进程中混合使用不同的C-Runtimes是一个非常糟糕的主意:http://siomsystems.com/mixing-visual-studio-versions/,更不用说通过POSIX API进一步抽象了。
无论C-Runtime差异如何,Cygwin都实现了LP64模型,而Windows实现了LLP64模型,这将使每个模块之间的64位大小Buckingham Pl, Eight Mile Plains QLD 4113, Australia
不同,因此某些结构的大小可能不同。无论如何,它们很可能是由于代码中的#ifdefs。
你有什么理由不能使用colorama吗? 祝福文件表明应该有效。