2009-07-22 47 views
12

我正在用python编写一个非常基本的应用程序(目前它只有一个文件)。我的问题是我如何获得它,所以python脚本能够在没有.py扩展名的/ usr/bin中运行?Python脚本在/ usr/bin

例如,而不是运行

python htswap.py args 
从那里目前是,我希望能够到CD到任意目录,并提前做

htswap args 

感谢目录

回答

31

通过重命名文件,可以简单地剥离.py扩展名。然后,你必须把下面一行在你的文件的顶部:

#!/usr/bin/env python 

env是一个小程序,设置,使执行权python解释环境。

您也可以使你的文件的可执行文件,用命令

chmod a+x htswap 

并转存到/usr/local/bin。这比/usr/bin更干净,因为该目录的内容通常由操作系统管理。

+0

经过很多痛苦和濒死体验后,我建议使用为#!/ usr/bin/env开发的特定python版本python (例如python2.4)。更好地控制python版本运行可执行文件(至少对于我经历过的情况,YMMV) – 2009-09-21 17:31:50

13

该文件的第一行应该是

#!/usr/bin/env python 

您应该删除.py扩展,使文件的可执行文件,使用

chmod ugo+x htswap 

编辑:正确输出,这样Thomas点脚本应放置在/usr/local/bin而不是/usr/bin。请大家回答他的回答(也许是我的代价)。对于这种东西,我们所说的七个赞成票是荒谬的)

+0

没错,就是这样,我早些时候做了这个,由于某种原因,它没有奏效,结果我忘记了!在shebang – 2009-07-22 20:32:40

2

Shebang?

#!/usr/bin/env python 

把,在你的文件的开头,你就设置

+2

哦宝贝,当她移动... – Alex 2009-07-22 20:32:10

1

添加#!/usr/bin/env pythonhtswap.py最顶部,并重新命名htswap.pyhtswap然后执行命令:chmod +x htswap使htswap可执行文件。

-1

我在Python的官方教程,http://docs.python.org/tutorial/index.html看,那

#! /usr/bin/env python 

使用,就像上面的答案建议。请注意,您还可以使用以下内容

#!/usr/bin/python 

这是您将在shell脚本中看到的样式,如bash脚本。例如

#!/bin/bash 

看到官方的啧啧具有第一个选项,可能是你最好的选择。代码中的一致性是要努力的!

+1

作为参考,第一个更好,因为它是可移植的。并非每个文件系统都有第二种选择。 – JasTonAChair 2017-02-19 00:48:29