我安装了 ActivePython,它是适用于 Windows 的 Python 版本 3.x 安装。我将解释器重命名为,activepython.exe
以便允许从 cygwin 调用它而无需修改/etc/profile
路径。
当我在cmd.exe
shell 中时,我可以不带参数调用 ActivePython 解释器并进入交互模式。当我从 Cygwin shell 执行 ActivePython 解释器时,shell 在按下 Enter 后会无限期挂起(类似于其他人看到的帐户这里)。
如何从 cygwin shell 调用 ActivePython?
答案1
找一个博客文章解决方案如下:
activepython -i
笔记:
- 就我而言,我在路径上有 ActivePython 解释器,以便
activepython
允许我调用 activepython 而不是已安装的 cygwinpython
。 - 提示:当您需要退出解释器时,解释器
Ctrl-D
不起作用。您需要这样做Ctrl-C
,然后 Cygwin shell 会冻结 20 秒,然后才能再次使用。 - 我找到了关于这个确切主题的第二个更权威的来源。这个来源是 Cygwin 终端
mintty
。在这里,Cygwin 开发人员正在讨论这个问题,他们似乎在讨论 windows/mintty/python 解释器的低级问题。- “这明确地告诉它以交互模式运行。否则它不起作用的原因是它检查 stdin 是否是控制台。对于 mintty 和其他基于 pty 的终端,答案是否定的,因为 Cygwin 使用管道来模拟 ptys,所以 Python 进入非交互模式。”
- “不幸的是,并非所有 Windows 程序都有像 -i 这样的解决方法来强制它们以交互方式运行。”
答案2
让 cygwin shell 从 cmd.exe 内部运行对我来说非常有效:
我使用了以下快捷方式(检查 cygwin 路径是否匹配)
%windir%\system32\cmd.exe /C C:\cygwin64\Cygwin.bat
Cygwin 在 cmd.exe 中运行 python 没有任何奇怪的问题