0

I am developing a small app for macOS that I want to convert as an executable. For this I use auto-py-to-exe. I always thought it's just a GUI for PyInstaller, but this article states, that "Another advantage is that Auto-py-to-exe creates an executable file that is a built version of the source code rather than the original source code". I always thought the results of these both tools should be the same, shouldn't they?

auto-py-to-exe also gives you the PyInstaller command-line prompt. If I execute this, I get the three outputs (folders build and dist and the .spec file). auto-py-to-exe only gives one folder as output, which I thought it should be the same then the dist folder. Is that true? If auto-py-to-exe uses PyInstaller shouldn't there also be a build folder and a .spec file?

I am a bit confused and I don't find a proper manual for auto-py-to-exe explaining this. Maybe somebody can shed some light here :).

gernophil
  • 177
  • 2
  • 6

2 Answers2

3

auto-py-to-exe is just a UI layer on top of PyInstaller - it calls PyInstaller internally.

Directly from auto-py-to-exe's README.md

A .py to .exe converter using a simple graphical interface and PyInstaller in Python.

auto-py-to-exe offers the following on top of PyInstaller:

  • A UI to use PyInstaller
  • Basic validation on PyInstaller inputs (like paths and .ico file types)
  • Builds your script in a temporary directory so there is no need for manual cleanup
  • PyInstaller and Python version checks (where some versions can be incompatible)
  • Minor default differences where issues typically occur (at the moment we just change the recursion limit)
  • Some non-English language support

Disclosure: I am the creator of auto-py-to-exe

Brent Vollebregt
  • 149
  • 2
  • 10
-1

Both PyInstaller and auto-py-to-exe are tools used to convert Python scripts into standalone executable files, but they have different features, functionalities, and levels of user-friendliness.

PyInstaller:

  • Features: PyInstaller is a well-established and widely-used tool that can package Python scripts along with their dependencies into a single executable file for various platforms (Windows, macOS, Linux).
  • Flexibility: It offers more customization options and supports more advanced features, making it suitable for complex projects with unique requirements.
  • Command-Line Interface: PyInstaller is primarily operated through the command-line interface (CLI). Users need to provide configuration options and parameters via command-line arguments.
  • Ease of Use: While powerful, PyInstaller might have a steeper learning curve for newcomers due to its extensive options and command-line interaction.
  • Dependency Handling: It handles dependencies, ensuring that the executable file contains all the required libraries and resources.
  • Platform Support: PyInstaller supports multiple platforms, allowing you to create executables for different operating systems.

auto-py-to-exe:

  • Features: auto-py-to-exe is a graphical user interface (GUI) tool that simplifies the process of converting Python scripts to executables.
  • User-Friendly: It's designed to be user-friendly, especially for those who are not familiar with command-line interfaces or packaging concepts.
  • GUI Interface: auto-py-to-exe provides a visual interface where users can configure options, select script files, and adjust settings without using the command line.
  • Simplified Configuration: It provides predefined settings and profiles, making it easier to create executable files without delving into complex configuration.
  • Simpler Projects: auto-py-to-exe might be better suited for simpler projects with straightforward requirements, where customization is not a primary concern.
  • Dependency Handling: Like PyInstaller, auto-py-to-exe handles dependencies and bundles them with the executable file.
  • Platform Support: While originally developed for Windows, auto-py-to-exe might not offer the same level of cross-platform compatibility as PyInstaller.

In summary, the main difference lies in their complexity and approach to packaging Python scripts. PyInstaller offers more control and customization through the command-line interface, making it suitable for complex projects. On the other hand, auto-py-to-exe provides a simpler, GUI-based solution, ideal for users seeking a more user-friendly and streamlined approach for creating standalone executables from Python scripts. The choice between the two depends on your project's complexity, your familiarity with command-line tools, and your preference for a GUI-based interface.

  • Thanks for this answer. However, `auto-py-to-exe` is using `PyInstaller` or doesn't it? You can see in [this screenshot](https://warehouse-camo.ingress.us-east-2.pypi.io/eb29c9774b11dab42fbee0e2c5e9cf2af72895fc/68747470733a2f2f6e6974726174696e652e6e65742f706f7374732f6175746f2d70792d746f2d6578652f666561747572652e706e67) (from the official homepage) that it just executes a `pyinstaller` command. So why do the outputs differ, if I just run this command directly in my terminal? – gernophil Aug 10 '23 at 08:25