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

8 投票
6 回答
5397 浏览
提问于 2025-04-16 18:31

当我想在命令行(在ubuntu系统下)运行我的python应用程序时,我必须进入存放源代码的目录,也就是app.py所在的地方,然后用下面的命令来运行应用程序:

python app.py

我该怎么做才能从任何目录运行这个应用程序,像输入lsmkdir和其他命令那样,只需要输入app就可以了?

谢谢

6 个回答

2
  1. 添加一个shebang:在文件的第一行加上:#!/usr/bin/python 或者 #!/usr/bin/python3(你可以用 python -B 来防止生成 .pyc 文件,这就是我不使用 /usr/bin/env 的原因)

  2. 让它可以执行:你需要运行 chmod +x app.py 这个命令。

  3. (可选)将目录添加到路径中,这样可以在任何地方调用:把包含你可执行文件的目录添加到你的 $PATH 环境变量中。具体怎么做取决于你用的命令行工具,但一般是 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 或者其他启动脚本里,不然每次登录都得重复这个步骤。

app.py 需要放在 myscripts(或者你自己命名的文件夹)里。你甚至不需要叫它 app.py,可以直接改名为 app

如果你想跳过第3步,只要在同一个目录下,你仍然可以用 ./app 来运行它。

10
  1. 在你的文件开头添加一个shebang行

    #!/usr/bin/env python
    
  2. 通过在命令行中输入

    chmod +x app.py
    

    来让你的文件可以执行。

  3. 把文件移动到一个在PATH环境变量中包含的地方,并把它重命名为app。另外,你也可以通过在你的.bash_profile中添加以下行来把包含app的目录路径添加到PATH环境变量中:

    export PATH=$PATH:/path/to/app
    

3

把脚本所在的文件夹加到你的路径中,让它可以执行,并且加上合适的开头标记。

在你的 .bashrc 文件里:

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

可执行的:

chmod +x myscript.py

在脚本的最上面,加上开头标记:

#!/usr/bin/env python

然后,你可以在任何地方直接运行:

myscript.py

(注意,你不需要加 .py 后缀,文件可以叫任何名字,比如 app,只要有合适的开头标记就行)。

撰写回答