繁体   English   中英

如何在命令行上调用python脚本,就像调用普通的shell命令(如cp)一样?

[英]How do I call a python script on the command line like I would call a common shell command, such as cp?

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

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

如何将hello_world.py配置为不带 'python''./'可执行文件:

hello_world
>>> "Hello, word!"

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

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

#!/bin/python

要么

#!/usr/bin/python

您还需要执行权限以这种方式运行文件。 使用chmod

chmod +x hello_world.py

如果您不是以root身份运行,则可能需要sudo,这可能是

sudo chmod +x hello_world.py

然后尝试与

./hello_world.py 

如果您不必使用./:

alias ./hello_world.py=hello_world 

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

当然,这只会在hello_world.py所在的文件夹中起作用,但是alias hello_world='python full/path/to/hello_world.py'将在任何地方起作用。

这仅对您的bash会话有效,但是将alias命令添加到〜/ .bashrc中将使其永久化。

您可以执行以下操作:

  • 使脚本可执行(使用chmod + x hello_world.py)
  • 将其重命名为hello_world
  • 将其移动到PATH中的目录(例如/ usr / bin)
  1. 如果〜/ bin目录不存在,请创建它并将python脚本移至该目录。
  2. 重命名hello_world.py只是hello_world
  3. 在脚本的开头,添加

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

      chmod +x hello_world 

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

它仅需要可读才能使“ python hello_world.py”正常工作。 您可以chmod + x hello_world.py使其可执行。 附加“。” 如果需要“ ./”,则将其添加到PATH环境变量

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

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

几个小时前,我才第一次这样做。 您可以做的是将python脚本转换为“程序包”,然后安装该程序包。

我遵循了本教程 ,它对我有用。 如果遵循它,您将能够在cmd行上键入“ runner”,并且脚本将运行。

您可以在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!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM