将应用程序或脚本转换为 shell 命令
当我想在命令行(在ubuntu系统下)运行我的python应用程序时,我必须进入存放源代码的目录,也就是app.py所在的地方,然后用下面的命令来运行应用程序:
python app.py
我该怎么做才能从任何目录运行这个应用程序,像输入ls、mkdir和其他命令那样,只需要输入app就可以了?
谢谢
相关问题:
6 个回答
添加一个shebang:在文件的第一行加上:
#!/usr/bin/python或者#!/usr/bin/python3(你可以用python -B来防止生成.pyc文件,这就是我不使用/usr/bin/env的原因)让它可以执行:你需要运行
chmod +x app.py这个命令。(可选)将目录添加到路径中,这样可以在任何地方调用:把包含你可执行文件的目录添加到你的
$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 来运行它。
在你的文件开头添加一个shebang行:
#!/usr/bin/env python通过在命令行中输入
chmod +x app.py来让你的文件可以执行。
把文件移动到一个在
PATH环境变量中包含的地方,并把它重命名为app。另外,你也可以通过在你的.bash_profile中添加以下行来把包含app的目录路径添加到PATH环境变量中:export PATH=$PATH:/path/to/app。
把脚本所在的文件夹加到你的路径中,让它可以执行,并且加上合适的开头标记。
在你的 .bashrc 文件里:
PATH=$PATH:/dir/to/the/script
可执行的:
chmod +x myscript.py
在脚本的最上面,加上开头标记:
#!/usr/bin/env python
然后,你可以在任何地方直接运行:
myscript.py
(注意,你不需要加 .py 后缀,文件可以叫任何名字,比如 app,只要有合适的开头标记就行)。