如何在命令行上调用python脚本,就像我调用常见的shell命令一样,比如cp?

时间:2014-09-11 00:12:14

标签: python linux shell terminal

假设我有一个可以运行的脚本:

python hello_world.py
>>> "Hello, world!"

如何将hello_world.py配置为可执行,不用 'python''./'

hello_world
>>> "Hello, word!"
编辑:谢谢大家的建议! shebang和路径解决方案以及python包解决方案都有效。我检查了python包解决方案,因为我喜欢通过pip install -e .将脚本添加到我的路径上的附加功能,而无需手动编辑我的路径变量并在pip freeze > requirement.txt调用期间捕获脚本。

8 个答案:

答案 0 :(得分:4)

如果您使用的是Linux或Unix,在文件顶部,它通常类似于

#!/bin/python

#!/usr/bin/python

以这种方式,您还需要执行perms来运行文件。使用chmod

chmod +x hello_world.py

如果您没有以root身份运行,则可能需要sudo,那就是

sudo chmod +x hello_world.py

然后尝试使用

运行
./hello_world.py 

如果你必须免除./:

alias ./hello_world.py=hello_world 

答案 1 :(得分:2)

一种解决方法是使用别名,即alias hello_world='python hello_world.py'

这当然只能在he​​llo_world.py所在的文件夹中使用,但alias hello_world='python full/path/to/hello_world.py'可以在任何地方使用。

这只适用于你的bash会话,但是将alias命令添加到你的〜/ .bashrc会使它成为永久性的。

答案 2 :(得分:1)

您可以执行以下操作:

  • 使脚本可执行(使用chmod + x hello_world.py)
  • 将其重命名为hello_world
  • 将其移至PATH中的目录(例如/ usr / bin)

答案 3 :(得分:1)

  1. 如果没有〜/ bin目录,请创建它并将python脚本移动到此目录。
  2. hello_world.py重命名为hello_world
  3. 在脚本的开头添加

        #!/usr/bin/env python
    
  4. 然后

        chmod +x hello_world
    
  5. 注意:如果您要在 Ubuntu 中创建〜/ bin 目录,注销再次登录(运行〜/ .profile 文件)。默认的〜/ .profile会自动将〜/ bin目录添加到你的路径中。

答案 4 :(得分:0)

它只需要可读" python hello_world.py"上班。 您可以使用chmod + x hello_world.py使其可执行。 追加'。'如果需要" ./"

,请转到PATH环境变量

答案 5 :(得分:0)

另一种方法是使用setup.py安装脚本并配置这样的入口点。

entry_points = {'console_scripts':['hello_world = hello_world:main']},

答案 6 :(得分:0)

我刚刚在几个小时前第一次这样做了。你可以做的是将你的python脚本变成一个'包,然后安装该包。

我跟着this tutorial,它对我有用。如果您遵循它,您将能够输入' runner'在cmd行上,您的脚本将运行。

答案 7 :(得分:0)

您可以在PATH中创建python脚本(或将其添加到您自己的PATH中)。

我假设你没有$HOME/bin,如果你跳过这个 -

mkdir $HOME/bin

接下来,创建$HOME/bin/hello_world

#!/usr/bin/env python

print "Hello, World!"

然后,

chmod +x $HOME/bin/hello_world
export PATH=$PATH:$HOME/bin

然后你可以,

$ hello_world
Hello, World!