将应用程序或脚本转换为 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
,只要有合适的开头标记就行)。