6

我已经决定走出我的 .NET 泡沫并开始尝试其他技术对我来说是件好事。我正在运行 Ubuntu12 并安装了 python2.7 和 3.2。我可以直接在解释器中运行代码。

我在文件系统上有一个名为 Standalone.py 的基本脚本:

#!/usr/bin/env python3.2

import sys

print("this is a standalone script.")

当我在 bash 提示符下输入$ python3.2 Standalone.py. 我得到一个回应说this is a standalone script。但是当我键入时$ Standalone.py,它告诉我找不到该命令。

我如何运行这样的脚本?

谢谢你的帮助。

更新

我将 Standalone.py 的权限更改为 755。然后我运行命令:

$ ./Standalone.py

并收到消息:

: No such file or directory

然后我将 Standalone.py 的权限切换回 644。然后当我运行

$ ./Standalone.py

我收到了消息

-bash: ./Standalone.py: Permission denied

有什么我想念的吗?

4

5 回答 5

9
  1. 您需要使脚本可执行使用

    chmod +x Standalone.py
    
  2. 通常不会在当前目录搜索可执行文件,所以需要使用

    ./Standalone.py
    

    告诉 shell 脚本在当前目录中。

于 2012-06-16T18:09:27.820 回答
3

确保您的脚本文件有 linux 换行符(只是\n)而不是 Windows 换行符(\r\n)。你是在windows上写的吗?这发生在我身上一次。您应该检查您的编辑器设置。

于 2012-06-16T21:41:27.730 回答
2
  1. 你的脚本应该以#!/usr/bin/pythonnot开头#!/usr/bin/env python3.2

  2. 确保你在你的脚本所在的文件夹中,你可以检查ls

  3. chmod +x Standalone.py

  4. ./Standalone.py

于 2012-06-16T18:38:04.860 回答
0

首先,要执行一个脚本,它需要是可执行的。所以你要么必须做一个 chmod +x $file 要么 chmod 0740 $file。当您将文件权限设置为 644 时,您将立即执行,因此 if 会给您一个错误。如果您不确定执行权和八进制表示法,可以使用: http: //permissions-calculator.org/decode/0644/。那么,要真正回答您的问题,如果您想使用 $file.py 调用脚本,它需要位于您的 PATH 变量中。您可以使用 echo $PATH 显示它。这些是搜索要执行的脚本的目录。因此,您只需为您的脚本赋予可执行权限,并将其放在 PATH 指定的目录之一中。

于 2012-06-16T19:59:21.497 回答
0

你能检查 /usr/bin/python 或 /usr/bin/python3.2 是否存在吗

执行以下命令:

which python3.2

然后在脚本之上使用生成的路径。

于 2012-06-17T08:12:58.507 回答