Introduction
We often need to include data files like txt file, HTML file, ini file in our packaged application. We can include all types of these data files in our packaged application, instead of providing them separately in Python.
Steps to include data files in Python Build
There are two ways to achieve this –
-
Running pyinstaller command from the command line
pyinstaller -F --add-data "sampleText.txt;." myscript.py
Here sampleText.txt;. Is in the format of
format: {source}{os_separator}{destination}
source - location of the data file to include
os_separetor - ; (to differentiate between source and destination)
destination - location where source file is present (‘.’ - It means source file is present at root level)
-
Through Spec files –
When we run pyinstaller a spec file is generated.
In this spec file, we can add data files location under datas
For e.g. –
datas=[("/var/www/html/myProject/config.ini", 'myFiles'), (/var/www/html/myProject/sampleText.txt', '.'),
Here /var/www/html/myProject/config.ini will be present in myFiles
And /var/www/html/myProject/sampleText.txt at root level.
Access Data files in Pyinstaller
-
First, we need to check whether we are accessing data files from the packaged app or from python script –
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
basePath = sys._MEIPASS
except Exception:
basePath = os.path.abspath(".")
-
Then we will concatenate our data file path.
bundle_dir = getattr(sys, '_MEIPASS', os.path.abspath(os.path.dirname(__file__)))
sampleTextFile = os.path.join(bundle_dir, 'sampleText.txt')
Being the most extensively used JavaScript library, a jQuery Certification will add enormous value to your skill-set. jQuery provides various functionalities to the developer in order to develop complex applications with ease and efficiency.