Home > Article > Backend Development > Convert Python program files to executable program files using PyInstaller
Use PyInstall to convert py files into exe executable files under Windows
I finally finished writing the py file and wanted to make it into an exe file. I initially chose to use py2exe, but the generated exe encountered two problems,
1. The print information in the py program is not displayed on the screen after executing tool in cmd;
2. When calling the dll interface and executing the py file, it is blocked and waited. As a result, when the exe is executed in cmd, the tool returns quickly and the interface is still running, which is very strange
I couldn't find a solution for a while, so I had no choice but to abandon it. I looked for pyinstall on the Internet and tried it. I felt that it was more powerful. . .
Before installing PyInstaller, you need to confirm that pywin32 is installed first
Download address: http://nchc.dl.sourceforge.net/project/pywin32/pywin32/Build%20218/pywin32-218.win32-py2.7.exe
1. PyInstaller installation
1. Download address: http://www.pyinstaller.org/wiki
2.The latest version: PyInstaller 2.0
3. It can be used directly after "unzipping" it to the path you want it to be in
2. PyInstaller configuration
1. Write the py program in advance
2. Execute on the command line:
Python Makespec.py --console --onefile NotePad\notepad.py
Error report:
Configfile is missing or unreadable. Please run Configure.py before building
3. Execute on the command line:
Configure.py
Error report:
Python 2.6+ on Windows support needs pywin32,Please install http://sourceforge.net/projects/pywin32/
python pyinstaller.py [opts] yourprogram.py
4. The main options include:
-F, -onefile package into an exe file
-D, -onedir creates a directory containing exe files, but will depend on many files (default option)
-c, -console, -nowindowed Use console, no interface (default)
-w, -windowed, -noconsole Use window, no console
5. Precautions
Before converting, make sure that the py program can pass normally;
If there are any errors during the conversion process, use a search engine to search for solutions.
Installing pyinstaller under Linux is used to package the py file to generate an executable file
1. Installation and usage process
1. First install easy_install on the system. If you have already installed it, you can skip this step
Go to the pypi official website https://pypi.python.org/pypi/setuptools to download the latest version
2. Download pyinstaller from the official website, the latest version is 2.1
(1) Website http://www.pyinstaller.org/
3. Unpack and enter the source code directory
(1)
tar -zxvf pyinstaller_2.1.tar.gz
(2)
cd pyinstaller-2.1
Run
python setup.py install
4. Copy py file
Copy the py file to be packaged such as test.py to the current directory
5. Generate executable file
cd to the pyinstaller directory and execute
python pyinstaller.py test.py
2. Possible problems
1. User permissions
Running pyinstaller directly under the root user will report the error "cannot run pyinstaller as user root"...
Therefore, you need to add another user and add read and write permissions to the directory where pyinstaller is located and all parent directories to avoid reporting 'mkdir' permission denied...
2. The python lib dynamic library cannot be found
After su switches to the new user,
pyinstaller reports an error that the python dynamic library cannot be found
raise IOError("Python library not found!") IOError: Python library not
Execute python --version to check the current version, and check if there is a corresponding version of libpython*.*.so file under /usr/local/lib,
If yes, skip this step. If not, you need to reinstall python. Be sure to add the --enable-shared parameter in the python installation configuration to generate the corresponding dynamic link library, such as:
#./configure --enable-shared --prefix=/usr/local #make #make install
The python version has been updated in my environment. As a result, /usr/lib does not have the latest version of the library file. I need to copy the new version to the corresponding /usr/lib directory. Note that there are two files:
#cp libpython*.so /usr/lib/ #ln -s /usr/lib/libpython*.so.1.0 /usr/lib/libpython*.so