Python shebang不工作

时间:2015-11-09 01:54:03

标签: python windows python-3.x cmd shebang

Python安装在:

C:/Python/Python35

在我的程序的顶部,我把:

#!/usr/bin/env python3

我打开了Windows命令提示符并输入了:

./words.py

我得到的信息是:

"." is not recognized

我被告知这应该在Windows上运行得很好,所以我很困惑?

4 个答案:

答案 0 :(得分:4)

./words.py无法在Windows命令提示符下运行,这种执行脚本的方式适用于Linux / UNIX shell。

如果你正在使用Python 3.3 +:

如果安装了Windows Python启动程序py,则遵守shebang行 {。{3}}。

确保已安装并尝试使用以下方式启动:

py words.py

答案 1 :(得分:1)

这里有很多问题。

  1. Shebangs是Unix的东西。 Windows根本不识别它们。相反,Windows使用文件扩展名。
  2. Windows上没有名为/ usr / bin / env的文件,所以即使你的shebang确实有效,也不会做你想做的事。
  3. Python安装程序通常会在安装时将Python与.py个文件相关联。如果它不是你的情况(因为你禁用了选项?),你需要修复它。
  4. ./something无法使用cmd.exe。它是.\somethingsomething

答案 2 :(得分:1)

无论谁告诉你,都必须误解你或你误解了他们。

除非您尝试使用https://docs.python.org/3/using/windows.html#shebang-lines,否则Shebang行对Windows无效。如果您将代码传递给可能在linux上运行的人,那么您需要它们以确保Windows和Linux之间的平滑过渡的另一个原因。

至于"。"它不用于Windows。它在linux OS中的原因是通知命令脚本在当前目录中。

对于Windows,您只需要:python words.py

答案 3 :(得分:0)

您的第一个问题是Windows不会将/视为路径分隔符。它必须是.\words.pywords.py。这就是你看到错误的原因。

下一个问题是windows命令shell没有实现shebang。它适用于linux shell(以及Windows上类似linux的shell,例如cygwin),因为这些shell读取可执行文件的前端位置以查看它们应该如何执行。 Windows通过查看扩展名来完成此操作。