将应用程序或脚本转换为shell命令

时间:2011-05-28 17:04:31

标签: python shell command-line

当我想从命令行运行我的python应用程序时(在ubuntu下)我必须在源代码app.py的目录中并使用命令运行应用程序

python app.py

如何使用命令app从任意目录运行应用程序(通常如何完成)?类似于您键入lsmkdir和其他命令?

谢谢

6 个答案:

答案 0 :(得分:8)

  1. 在文件开头添加shebang line

    #!/usr/bin/env python
    
  2. 通过调用

    使文件可执行
    chmod +x app.py
    

    在shell中。

  3. 将其移至PATH环境变量中包含的某个位置,并将其重命名为app。或者,通过添加行

    ,将包含app的目录的路径添加到PATH环境变量中
    export PATH=$PATH:/path/to/app
    

    .bash_profile

答案 1 :(得分:3)

将脚本所在的目录添加到路径中,使其可执行,并添加适当的shebang行。

.bashrc

PATH=$PATH:/dir/to/the/script

可执行文件:

chmod +x myscript.py

在脚本的顶部,添加shebang行:

#!/usr/bin/env python

然后,从任何地方,您都可以这样做:

myscript.py

(请注意,您不需要.py后缀,可以调用任何内容,例如app如果您有合适的shebang行。)

答案 2 :(得分:2)

  1. 添加一个shebang:作为文件的第一行:#!/usr/bin/python#!/usr/bin/python3(您可以使用python -B来阻止生成.pyc个文件,这就是我不使用/usr/bin/env

  2. 的原因
  3. 使其可执行:您需要执行chmod +x app.py

  4. (可选)将目录添加到路径,因此可以在任何地方调用它:将包含可执行文件的目录添加到$PATH环境变量中。如何执行此操作取决于您的shell,但要么export PATH=$PATH:/home/you/some/path/to/myscripts(例如使用bash的Linux发行版)或setenv PATH $PATH:/home/you/some/path/to/myscripts(例如Mac OS X中的tcsh)。例如,您可以将其放在.bashrc或任何启动脚本中,否则每次登录时都必须重复此步骤。

  5. app.py需要位于myscripts(或任何您的名字)文件夹中。您甚至不需要将其称为app.py,但您可以将其重命名为app

    如果您希望跳过第3步,如果您在同一目录中,仍然可以./app运行它。

答案 3 :(得分:1)

可能您想要符号链接到您的文件位置,而不是在路径中添加其他位置

chmod +x app.py
ln ~app.py /opt/local/bin/app

...假设/ opt / local / bin已经在您的路径中,。

另外,不要忘记将shebang行添加到脚本的第一行: #!/usr/bin/env python

答案 4 :(得分:1)

解决方案与此处提到的解决方案有所不同:使用别名。

alias app='python /path/to/app.py'

将以上行添加到~/.bashrc~/.bash_login文件中(如果您使用的是Ubuntu,最好添加到~/.bash_aliases)。然后,您只需将脚本用作app的命令行工具。

无需添加shebang(从而修改现有的Python脚本),无需使脚本可执行,也无需更改PATH

答案 5 :(得分:0)

我很确定你必须通过chmod +x使脚本可执行,并将其放在系统的PATH变量中。