【问题标题】:python works in cmd, but not in bashpython 在 cmd 中工作,但在 bash 中不工作
【发布时间】:2015-11-09 10:38:46
【问题描述】:

我有一个 python 脚本,我想在 MinGW bash 环境中运行(在 bash 脚本中)

我在 PATH 中安装了 python 3.5。

这基本上是当我尝试在 cmd 中启动 python,然后在 bash 中启动时发生的情况。

C:\Users\mkhoory-test>python
Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59) [MSC v.1900 32 bit (In
tel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()

C:\Users\mkhoory-test>bash
bash-3.1$ python
 - Cannot openbash-3.1$

我被难住了。这可能是什么原因?

【问题讨论】:

  • 尝试设置'PATH'指向你安装的Python
  • 首先,尝试使用 Python 可执行文件的绝对路径。如果它有效,那么您的 PATH 变量有问题。
  • 这很奇怪.. python 已经在路径中。但是,我似乎有 2 个位置用于 python .. 检查我在 Christian 的回答中的评论

标签: python windows bash cmd mingw


【解决方案1】:

在您的.bashrc 文件中,应该位于C:\Users\[Username]\ 下,您可以为您的PATH 添加一个条目。如果文件不存在,您可以添加它。

PATH=/c/PathToPythonInstallation

如果您要添加多个目录,请使用: 分隔每个条目,这与Windows 规范; 不同。

如果您在 .bashrc 中设置它,您需要关闭并重新打开 bash shell,或者键入 source ~/.bashrc 以加载它。

您还可以使用 export 来临时设置 shell 会话的生命周期路径,例如 export PATH=/c/PathToPythonInstallation

【讨论】:

  • 你是对的,但奇怪的地方是……python已经在路上了!请记住,bash 已经使用 Windows 设置的路径,因此 cmd 可执行的任何内容都应该从一开始就可以由 bash 执行。经过一番检查,system32 中似乎有一个 python.exe,这是 bash 试图执行的,我的 AppData 文件夹中也有一个。 system32 似乎不起作用,但 AppData 中的那个起作用了。设置路径以便首先搜索 AppData 文件夹使 python 工作。但是我无法解释......为什么 system32 不能工作?
  • 经过一番挖掘,python.exe 实际上不在 system32 中(如果我手动查看,我无法在文件夹中找到它)....但是命令 where python 说它是, 并将 system32 位置列为第一个位置。我无法解释这一点。另外,或者,我可以使用“py”而不是“python”,它无需设置 PATH 即可工作..
  • 另外需要注意的是:如果 python 真的不在 PATH 中,我会得到一个“找不到命令”错误。但我收到“无法打开”错误,这是不同的。
猜你喜欢
  • 1970-01-01
  • 2021-08-27
  • 2022-07-05
  • 1970-01-01
  • 2022-01-20
  • 2014-03-21
  • 1970-01-01
  • 2012-03-20
  • 1970-01-01
相关资源
最近更新 更多