当我想从命令行运行我的python应用程序时(在ubuntu下)我必须在源代码app.py的目录中并使用命令运行应用程序
python app.py
如何使用命令app
从任意目录运行应用程序(通常如何完成)?类似于您键入ls
,mkdir
和其他命令?
谢谢
答案 0 :(得分:8)
在文件开头添加shebang line:
#!/usr/bin/env python
通过调用
使文件可执行chmod +x app.py
在shell中。
将其移至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)
添加一个shebang:作为文件的第一行:#!/usr/bin/python
或#!/usr/bin/python3
(您可以使用python -B
来阻止生成.pyc
个文件,这就是我不使用/usr/bin/env
)
使其可执行:您需要执行chmod +x app.py
(可选)将目录添加到路径,因此可以在任何地方调用它:将包含可执行文件的目录添加到$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
或任何启动脚本中,否则每次登录时都必须重复此步骤。
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变量中。