Windows 7 上的 Python 3.4 中的诅咒需要啥?
Posted
技术标签:
【中文标题】Windows 7 上的 Python 3.4 中的诅咒需要啥?【英文标题】:What is needed for curses in Python 3.4 on Windows7?Windows 7 上的 Python 3.4 中的诅咒需要什么? 【发布时间】:2015-12-01 18:04:01 【问题描述】:我在我的 Windows 7 (x64) 机器上安装了正在运行的 Python 2.7/3.4。我想在 Windows 上测试 curses。
Curses 已安装但无法正常工作:
>>> import curses
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Tools\Python3.4.2\lib\curses\__init__.py", line 13, in <module>
from _curses import *
ImportError: No module named '_curses'
documentation 说:
Windows 版本的 Python 不包含 curses 模块。有一个名为UniCurses 的移植版本可用。
因此,Python 3.4 的 Windows 安装程序安装了带有未解决依赖项的 curses。可以将其称为错误...
好的,我研究了 UniCurses。这是PDCurses 的包装器:
UniCurses 是 Python 2.x/3.x 的包装器,它在所有平台(MS Windows、Linux 和 Mac OS X)上提供了一组统一的 Curses 函数,其语法接近原始 NCurses。为了在 Microsoft Windows 系统上提供 Curses 功能,它封装了 PDCurses。
通过pip3
安装 UniCurses 会导致错误:
C:\Users\Paebbels>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:\Users\Paebbels\pip\pip.log
Python 的 UniCurses 站点上的 SourceForge 链接已失效。手动搜索 SourceForge 帮助再次找到 UniCurses for Python。
但是,UniCurses 1.2 安装程序在我的 Windows 注册表中找不到任何 Python 安装。 (Python 2.7.9 和 Python 3.4.2 可用)。
我还研究了公共领域诅咒 (PDCurses)。 PD Cureses 3.4 是从 2008 年底开始的。所以它已经 7 岁了。我认为它不适用于 Windows 7、Windows 8.1 或 Windows 10。
有什么方法可以让 curses 在 Windows 上使用 Python 运行。
(Windows Python,而不是 CygWin Python!)
【问题讨论】:
它可能可以工作,因为没有基本的不兼容问题——但是这样做,你将不得不学习如何修改 UniCurses(并构建 that )。 Christoph Gohlke 的 Windows 版本为 curses。下载 curses‑2.2‑cp34‑none‑win_amd64.whl 并按照说明发送至install a wheel。 @eryksun 请写下您的评论作为答案,以便我对其进行投票。安装很顺利。 您是否热衷于编写 curses 代码,或者您需要等效的 API?如果是后者,我已经为asciimatics 解决了所有这些相同的问题。该软件包将为您提供可在 Windows 7、8 和 10 上运行的跨终端 API,以及大量动画内容... 【参考方案1】:您可以尝试my mirror of unicurses,其中包括 pdcurses dll。我目前使用 python 3.5.0 在 Windows 7 上启动并运行它。
要快速测试它是否适合您,只需克隆存储库并在其***目录中创建并运行一个 python 脚本,其中包含类似
from unicurses import *
stdscr = initscr()
addstr("hello world")
getch()
【讨论】:
我会在我的电脑上测试一下。 我不确定。但我想解决一些问题,无论如何都要有一个 github 镜像。我将我修复的问题通知了原作者,但我不记得收到过回复。【参考方案2】:如果您为 Windows 手动安装或像其他软件包一样,您可以跨平台使用 curses(Windows、MacOS、GNU/Linux)。
安装车轮包。如果您需要有关wheel click here 的更多信息。
转到this repository。
使用您的 python 版本下载一个包,例如 python 3.4:
curses-2.2-cp34-none-win_amd64.whl
安装它(此命令如果适用于 Windows,则在 GNU/Linux 中像其他软件包一样安装)
python -m pip install curses-2.2-cp34-none-win32.whl
只需包含在您的 python 脚本中:
import curses
您可以为 python 使用 curses 包装器。适用于所有终端的 Fedora 25,以及使用 git bash、powershell 或 cmd 的 Windows 10。
更新:
Windows 中的curses 替代品here。 Windows 中的控制台用户界面here。 一个有趣的教程here。【讨论】:
因为这个问题有点过时了......是否已经有 Python 3.5 和 3.6 的***? 你要求 python 3.4,我试过那个版本,它可以工作。我似乎不存在车轮,但如果您想尝试,则存在版本 python 3.5 和 3.6。 @Paebbels 是的,我今天查了一下,Python 3.5 和 Python 3.6 也有***(3.6 版本对我来说还可以)。 此外,curses python 与 Windows 商店的 Ubuntu 应用程序完美配合。 我用 windows 安装程序安装了 python 并从 cmd 进行了测试。我不知道是否适用于类似 bash shell 的 cygwin,但如果你使用 cygwin 安装 python 并从那里安装 whl,它可以工作。另一种选择(对于 Windows 10)是使用 Linux 子系统(Ubuntu、Fedora...)和 GNU/Linux 的东西。【参考方案3】:现在我们可以使用 pip install windows-curses
在 python 3.7 上轻松安装
【讨论】:
以上是关于Windows 7 上的 Python 3.4 中的诅咒需要啥?的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 上使用带有 Python 3.4 的 ImageScanner 模块
sh 在Alpine Linux 3.4上的PHP 7.1.7中打破了strftime()%P修饰符
在路径中找不到“dot.exe”。 Python 上的 Pydot (Windows 7)
Windows 上的 Python 3.3.2 和 2.7.5 第一行代码? [复制]