how to run python script without typing 'python …'

泄露秘密 提交于 2019-11-27 00:37:47

You've got to add the shebang:

#!/usr/bin/env python

Then make the script executable:

chmod +x foo

Then you can run it like any other executable:

./foo

And a note from Homer6: if you're editing the file from windows and invoking it on linux, you may run into the cryptic "No such file or directory" error. It's due to the line endings of the lines being CRLF instead of LF. If you convert them to LF, the script will execute as expected. Notepad++ > View > Show Symbols > Show End of Line to show the EOL characters. And Notepad++ > Edit > EOL Conversion > Unix Format to convert all line endings to use LF. Alternatively, you can use the dos2unix tool (dos2unix foo.py), which is present on most Linux systems.

  1. Add a line at the top of your script:

    #! /usr/bin/env python
    
  2. Rename your script from script_name.py to script_name
  3. make the script executable: chmod +x script_name

The line at the top selects the same python that you get when typing python at the prompt. You can also specify a direct path:

#!/opt/python/3.6/bin/python

It didn't really apply to your personal scripts but as you are quoting beets, note that it is also possible to automate this action when you are distributing your packages, thanks to setuptools entry_point option.
So if you are distributing a package like myModule and want to make the main_function() function accessible via typing mymodulescript in the console you would probably add something like this to your setup.py file :

setup(
    # your other arguments ..
    entry_points={
        'console_scripts': [
            'mymodulescript = myModule:main_function'
        ]
    }
)

Another workaround could be to use an alias defined in the .bashrc :

e.g. add the following line in your .bachrc file :

alias mypythonalias = "python mypyrhonfile.py"

type in terminal :

source ~/.bashrc

and then you may simply type:

mypythonalias

to execute the python file.

Anto Binish Kaspar

Ensure you are able to run /path/to/python on your terminal. And make sure you have given execute permission for your python file. You can give permission for the file by

chmod +x mypythonfile.py
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!