Using CX_Freeze in Python

07 Jul, 2017
We have created many interesting projects and programs in Python.There may come a time when we’ve created something very exciting, and we want to share it. Usually, in order to share our Python program, the recipient is going to need to have the same version of Python installed, along with all of the modules used. Well this can be quite tedious to require. The interest in converting to .exe is fairly high for distribution, and there are a couple of options. With Python 2.7, Py2exe is a great choice & for Python 3, cx_freeze works quite nicely.
CX_Freeze | .py to .exe
cx_Freeze is a set of scripts and modules for freezing Python scripts into executables, in much the same way that py2exe and py2app do. Unlike these two tools, cx_Freeze is cross-platform and should work on any platform that Python itself works on. It supports Python 2.7 or higher (including Python 3).We’ll first need to get cx_Freeze: download from here or install it using pip:
Once we have cx_freeze, we’re ready to get started. We will parse ‘geeksforgeeks.org’ with regex and urllib.
import urllib.requestimport urllib.parseimport reimport time    url = 'https://www.geeksforgeeks.org/'values = {'s' : 'basics',          'submit' : 'search'}  data = urllib.parse.urlencode(values)data = data.encode('utf-8') # data should be bytesreq = urllib.request.Request(url, data)resp = urllib.request.urlopen(req)respData = resp.read()  paragraphs = re.findall(r'<p>(.*?)</p>',str(respData))  for eachParagraph in paragraphs:    print(eachParagraph)  time.sleep(14)
Output: We’ve added a 14 second sleep at the end, so that we can run the executable and see the output before it closes.So, let’s save this file as “reandurllib.py.”
Now, we create a second file called “setup.py”
from cx_Freeze import setup, Executable  setup(name = "GeeksforGeeks" ,      version = "0.1" ,      description = "" ,      executables = [Executable("reandurllib.py")])
So, here we’re importing from cx_Freeze setup and executable, then we call the setup function, adding 4 parameters.
name : this is the name we want our executable to beVersion : is just a version number to give it,description : All the details we want to give(optional)executableThese are finally what shall we convert, using the executable function and the python script’s path to be converted as the parameter.
name : this is the name we want our executable to be
Version : is just a version number to give it,
description : All the details we want to give(optional)
executableThese are finally what shall we convert, using the executable function and the python script’s path to be converted as the parameter.
Next, we open up cmd.exe, or bash, or whatever shell we have, navigate to the directory that has the setup.py and the script to be converted, and we run:
python setup.py build
Now we’re given a build directory. Within it, we find another directory, and within THAT, we find our executable! If everything went right, it should parse the search result of basic from geeksforgeeks.org, and display the text results for 15 seconds before closing.Check, how to find the executable:YouTubeWatch laterShareCopy linkInfoShoppingTap to unmuteIf playback doesn't begin shortly, try restarting your device.More videosMore videosThis video is privateMore videos on YouTubeSwitch cameraShareInclude playlistAn error occurred while retrieving sharing information. Please try again later.Watch on0:000:000:00 / 0:00•Live•<div class="player-unavailable"><h1 class="message">An error occurred.</h1><div class="submessage">Unable to execute JavaScript.</div></div>Some things wont be so simple. Converting things like Pygame and Matplotlib are very difficult and are solved in a case-by-case basis.
Reference:
CX_Freeze
Documentation CX_Freeze
This article is contributed by Amartya Ranjan Saikia. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.