执行python脚本作为命令

时间:2016-01-27 16:24:14

标签: python unix

我正在编写一个将放置在某个位置的python脚本。我想像命令一样执行它。对于前

$ find_branch test

其中find_branch是放置在系统中任何位置的脚本。

我想知道如何实现这一目标。我可以通过脚本上的chmod u + x在脚本所在的位置运行它,并从脚本中删除.py

3 个答案:

答案 0 :(得分:0)

sudo nano /usr/bin/testpyscript

然后在剧本里面:

#!/usr/bin/python
print("I'm a python script")

授予x权限:

sudo chmod +x /usr/bin/testpyscript

现在您可以将它用作常规命令:

bash-4.2$ testpyscript 
I'm a python script

它不必完全位于/usr/bin,$ PATH内的任何位置都可以。假设您希望它位于主目录中的某个文件夹中,您可以执行以下操作:

pwd
/home/brunorb

mkdir somedir
sudo mv /usr/bin/testpyscript somedir/

export PATH=$PATH:/home/brunorb/somedir/

testpyscript # from any folder in the system
I'm a python script

答案 1 :(得分:0)

您可以选择多种方法来实现这一目标。

  1. 添加将脚本放置到PATH环境变量的位置,例如在~/.bashrc脚本中:

    export PATH="${PATH}:/folder/where/you/put/the/script"
    
  2. 将脚本安装到路径中已有的位置。它不必是/usr/bin之类的系统文件夹。许多默认的Bash设置都会在~/bin中包含PATH

  3. 在命令行中提供脚本的完整路径:

    /folder/where/you/put/the/script/find_branch test
    
  4. 通过Python运行脚本。这与选项#2非常相似:

    python /folder/where/you/put/the/script/find_branch test
    
  5. 为您环境中的脚本创建别名。在bash中,您可以在~/.bashrc中执行以下操作:

    alias find_branch='/folder/where/you/put/the/script/find_branch'
    

    OR

    alias find_branch='python /folder/where/you/put/the/script/find_branch'
    
  6. 对于选项#1,#2,#3和#5a才能正常工作,你应该有一个以python版本作为脚本第一行的shebang。以下任何一项都可以,具体取决于您/您希望如何设置环境:

    #!/usr/bin/python
    #!/usr/bin/python2
    #!/usr/bin/python3
    #!/usr/bin/env python
    #!/usr/bin/env python2
    #!/usr/bin/env python3
    

    最后,如果您不想,则不必从脚本中删除.py扩展名。例如,许多bash脚本具有.sh扩展名,但不会阻止它们按原样运行。您只需在运行时在脚本名称中包含扩展名。

答案 2 :(得分:0)

确保已将python添加到路径中,并且#!/usr/bin/python位于脚本的顶部。

注意您可以尝试将脚本添加到/usr/local/bin/目录并为其提供适当的权限。

sudo cp <your script> /usr/local/bin/