Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
568 views
in Technique[技术] by (71.8m points)

windows - What is needed for curses in Python 3.4 on Windows7?

I have a running Python 2.7/3.4 installation on my Windows 7 (x64) machine. I would like to test curses on Windows.

Curses is installed but not working:

>>> import curses
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:ToolsPython3.4.2libcurses\__init__.py", line 13, in <module>
    from _curses import *
ImportError: No module named '_curses'

The documentation says:

The Windows version of Python doesn’t include the curses module. A ported version called UniCurses is available.

So, the Windows installer of Python 3.4 installed curses with unresolved dependencies. One could name this a bug...

OK, I looked into UniCurses. It's a wrapper for PDCurses:

UniCurses is a wrapper for Python 2.x/3.x that provides a unified set of Curses functions on all platforms (MS Windows, Linux, and Mac OS X) with syntax close to that of the original NCurses. To provide the Curses functionality on Microsoft Windows systems it wraps PDCurses.

Installing UniCurses via pip3 results in an error:

C:UsersPaebbels>pip3 install UniCurses
Downloading/unpacking UniCurses
  Could not find any downloads that satisfy the requirement UniCurses
  Some externally hosted files were ignored (use --allow-external UniCurses to allow).
Cleaning up...
No distributions at all found for UniCurses
Storing debug log for failure in C:UsersPaebbelspippip.log

The link to SourceForge on Python's UniCurses site is dead. A manual search an SourceForge helped to find UniCurses for Python again.

But, the UniCurses 1.2 installer can not find any Python installation in my Windows registry. (Python 2.7.9 and Python 3.4.2 are available).

I also looked into Public Domain Curses (PDCurses). PD Cureses 3.4 is from late 2008. So it's 7 years old. I don't believe it will work either with Windows 7 nor Windows 8.1 or Windows 10.

Is there any way to get curses running on Windows with Python.

(The Windows Python, not the CygWin Python!)

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use curses cross-platform (Windows, MacOS, GNU/Linux) if you install manually for Windows or like other package in others.

  1. Install wheel package. If you need more info about wheel click here.

  2. Go to this repository.

  3. Download a package with your python version, in example for python 3.4:

    curses-2.2-cp34-none-win_amd64.whl
    
  4. Install it (this command if for windows, in GNU/Linux install like other package)

    python -m pip install curses-2.2-cp34-none-win32.whl
    
  5. Just include in your python script:

    import curses 
    

You can use curses wrapper for python. Works in Fedora 25 in all terminals, and Windows 10 using git bash, powershell, or cmd.

Update:

  • An alternative to curses in Windows here.
  • Console user interface in Windows here.
  • An interesting tutorial here.

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...