【问题标题】:Python won't run in bash but will run in cmd [duplicate]Python不会在bash中运行,但会在cmd中运行[重复]
【发布时间】:2016-03-26 08:06:00
【问题描述】:

如果我在 Windows 的命令行上执行我的 python 脚本,它会完美运行,但是当我在 bash 上运行它时,它只会等待另一行,但如果我尝试其他命令,例如 python --version,它会显示:Python 2.7.10。

我正在运行的命令是:

python Run.py

Run.py 包含:

print 'This is a test'

Mingw64 自带 bash,如果有帮助的话

【问题讨论】:

  • Run.py 保存在哪里?
  • 尝试重命名为run.py并使用python run.py。
  • Python 通常要求在路径中找到 Python 源文件,或者您提供相对路径或完整路径。因此,除非您在 Bash 中与 Run.py 位于同一目录中,或者 Run.py 在 /usr/local/bin 或类似目录中,否则它无法找到 Run.py,因此不会运行。
  • 我正在使用 Git Bash 在 Windows 上运行它。它会这样做prntscr.com/9g6sxk 我一直按 Enter 看看它是否会运行,但它不会。
  • 名称不是问题,我已经用 python 2.7.10 和 Run.py 尝试了上述方法并且工作正常。

标签: python bash


【解决方案1】:

This is a known bug in MSys2, which provides the terminal used by Git Bash. 您可以通过运行不支持 ncurses 的 Python 构建或使用 WinPTY 来解决此问题,用法如下:

要在 mintty 或 Cygwin sshd 中运行 Windows 控制台程序,请将 console.exe 添加到命令行:

$ build/console.exe c:/Python27/python.exe
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 10 + 20
30
>>> exit()

prebuilt binaries for msys 可能与 Git Bash 一起使用。 (如果自发布此答案以来已经过了很长时间,请检查是否有更新的版本!)。

【讨论】:

  • bash: build/console.exe: 没有这样的文件或目录
  • 这是一个使用 WinPTY 控制台的例子。您需要下载并安装它;按照链接。 (当然,使用适合二进制文件实际位置或状态的调用作为 PATH 的一部分)。
  • 当我点击“msys.dll is missing”时控制台崩溃。
  • ...一个错误,这正是它所说的:您安装的二进制文件是针对与您安装的不同的 msys 编译的。
  • 嗯? python foo——你说你正在做的——根本不看shebang;只有./foo 这样做。在合理的平台上(即不是 Windows),shebangs 非常棒;它们意味着我们不需要诸如文件扩展名之类的废话来向操作系统描述它们应该如何被调用。
猜你喜欢
  • 2012-06-17
  • 2016-05-30
  • 2021-12-24
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-12
相关资源
最近更新 更多