Reputation:
I just installed a linux system (Kubuntu) and was wondering if there is a program to make python programs executable for linux.
Upvotes: 123
Views: 284369
Reputation: 320
You can use PyInstaller. It generates a build dist so you can execute it as a single "binary" file.
http://pythonhosted.org/PyInstaller/#using-pyinstaller
Python 3 has the native option of create a build dist also:
https://docs.python.org/3.10/library/distutils.html
Upvotes: 20
Reputation: 1
As addition to leo pepes answer above for beginners - I just used auto-py-to-exe and followed these steps in Ubuntu 22.04/Python 3.10/VSC: (auto-py-to-exe is a web-gui using the pyinstaller mentioned above)
pip3 install auto-py-to-exe
start it with the command: auto-py-to-exe
choose your .py file under "scriptfile location"
click on "convert to exe"
later on you can: choose additional files convert in only one file (without folder) export your config to a json file(settings) and much more over the GUI
Upvotes: 0
Reputation: 143
as I find it a bit ambiguous, as to what exactly you refer to with a ''Program'', I present here an answer, how to make a ''package''-program executable from the command line in Linux, as this was not answered in this question before.
Essentially you have to follow the official instructions, but in essence, you have to do the following steps:
1.) Refactor your program into the structure presented here (you essentially have the choice between two structures)
2.) Assuming you chose the ''flat layout'' and your project name is awesome
(i.e. assuming your source files lie in program/awesome
), you create two files, setup.py
and setup.cfg
file, at your program level (i.e. program
), with the contents below:
setup.py
:
from setuptools import setup
setup()
setup.cfg
:
[metadata]
name = awesome
version = 0.0.1
description = My awesome program is 'awesomer' than yours
author =Awesome Name
email = [email protected]
[options]
packages = find:
install_requires =
<YOUR-REQUIREMENTS-HERE-DELETE-IF-NONE>
[options.entry_points]
console_scripts =
awesome = awesome:main
3.) In your program/awesome
folder you create a __init__.py
file, with a main
function, where you can then start your ''real'' program.
I.e. put into your __init__.py
file at least the following code to see an effect:
def main():
print("MY AWESOME PROGRAM WORKS!")
4.) Install it using e.g. python setup.py install
5.) Execute it from the command line using awesome
, e.g. $> awesome
Hope this helps anyone - Thinklex
Upvotes: 1
Reputation: 315
Do the following steps:
#!/usr/bin/python
chmod +x <script-name>.py
<script-name>.py
from /usr/local/bin
ln -s <path-to-your-script> /usr/local/bin/<executable-name-you-want>
These steps works irrespective of whether you have single standalone python script or if you have multiple dependent script called by your main file.
Upvotes: 2
Reputation: 41
I do the following:
This essentially turns the file into a bash executable. When you double-click it, it should run. This works in Unix-based systems.
Upvotes: 3
Reputation: 391
If one want to make executable hello.py
first find the path where python is in your os with : which python
it usually resides under "/usr/bin/python" folder.
at the very first line of hello.py
one should add : #!/usr/bin/python
then through linux command chmod
one should just make it executable like : chmod +x hello.py
and execute with ./hello.py
Upvotes: 5
Reputation: 906
Another way to do it could be by creating an alias. For example in terminal write:
alias printhello='python /home/hello_world.py'
Writing printhello
will run hello_world.py, but this is only temporary.
To make aliases permanent, you have to add them to bashrc, you can edit it by writing this in the terminal:
gedit ~/.bashrc
Upvotes: 0
Reputation: 2361
Putting these lines at the starting of the code will tell your operating systems to look up the binary program needed for the execution of the python script i.e it is the python interpreter.
So it depends on your operating system where it keeps the python interpreter. As I have Ubuntu as operating system it keeps the python interpreter in /usr/bin/python
so I have to write this line at the starting of my python script;
#!/usr/bin/python
After completing and saving your code
Start your command terminal
Make sure the script lies in your present working directory
Type chmod +x script_name.py
Now you can start the script by clicking the script. An alert box will appear; press "Run" or "Run in Terminal" in the alert box; or, at the terminal prompt, type ./script_name.py
Upvotes: 6
Reputation: 3147
If you want to obtain a stand-alone binary application in Python try to use a tool like py2exe or PyInstaller.
Upvotes: 24
Reputation: 5575
Just put this in the first line of your script :
#!/usr/bin/env python
Make the file executable with
chmod +x myfile.py
Execute with
./myfile.py
Upvotes: 199