Pyinstaller mac app not working

GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account. I will get a workable version of Events. I was stuck at the 'codesign' step. It seems like Apple's codesign program unable to recognize the bundle file PyInstaller generated! This a known issue. It was discussed on the mailing list or in this Trac system.

No working solution was found yet. Could you try to codesign the precompiled bootloader files in. Is there any plan to fix this issue? Otherwise, all OSX bundles require people to unlock their security settings which was not friendly to most common users.

It would be nice to have it fixed. However, there is not clear solution how to implement the fix. For the boot loader files, yes, they all pass the 'codesign' procedure, see below: Any suggestions? Sorry, this didn't help also. Using the method, i can sign my OSX bundle, but it can not run, if i open my osx bundle app in the command line, it reports see the last line :.

As fallback, the code seems to use a path that is probably invalid. This might solve your immediate problem.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Have a question about this project?

Sign up for a free GitHub account to open an issue and contact its maintainers and the community. Already on GitHub?

Sign in to your account. The output to the console. Running pyinstaller with the. The unix executable. The unix executable in the app bundle. This issue is simply with clicking or attempting to open the.

NOTE: that this problem also persisted for me using a non-tkinter python script: therefore I find it likely that using tkinter is not in anyway related. However, I would like to be able to create an app using tkinter GUI, thus, my interest in resolving this issue with respect to this python script. This issue has been referenced in several other threads but has been conflated with other issues. Issue addresses this exact issue, however, that thread has been conflated with users who are having their app crash because of loading files within their python script.

The issue of app crashing due to file loading within the python script can be solved by consulting those threads. The distinction between this issue and the issue of file loading within the python script can be diagnosed by the following as I understand it :.

This issue is about why the unix executable generated by the --onefile option works perfectly, yet the mac app bundle will open and immediately close. I encountered the exact same problem both double clicking on the app, and running open myapp. One way to make the double clicking works is to make an app bundle manually a bit oddly.

After running the pyinstaller --onefile myapp. I join here an error. In my post. Please read the Important Info for Related Issues: section of my original post. There is already so much conflated misinformation about this issue on various threads.

I spent 3hrs reading every pertinent post on GitHub and StackExchange to try and untangle and differentiate the two types of issues. Please do not hijack this thread by bringing related but not identical issues to focus. Thank you. I conscientiously read all your thread before commenting, and this is definitely the same issue.

I will modify my previous comment so that it is clearer to you what I made to make it work the open myapp means the same as your open.

The workaround seems to keep a terminal open while the application is open. Is there any way around this? I've tried to have a look - even with the debug version and loggin various errors in console - but I have found nothing more. Then I've tried to look inside, and I've taken various traces with dtruss. I'm attaching them, hoping that someone could discover what's wrong.

I have the same problem. Using pyinstaller with the.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community. Already on GitHub? Sign in to your account. In order to demonstrate the issue I create a simple application. Main window has only one button.

When you press the button its text should be changed to "Button is clicked When I run this program as. The text is not updating until you click anywhere outside of the window. I could see this behavior only on macOS Mojave.

pyinstaller mac app not working

Any suggestions? I found the solution for this problem. In order to solve this rendering issue you need to add the following line for a ui element, which needs to be updated.

pyinstaller mac app not working

In my case it is required only if I need to run this application on macOS Mojave. Skip to content. Dismiss Join GitHub today GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.

Sign up. New issue. Jump to bottom. Copy link Quote reply. QWidget MainWindow self.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account. Success: launching the "onedir" version of the executable. When the. OS X I launched the binary from within the. Attempted compiling homebrew's tcl-tk --with-threads and without, same result. Double-click of the. Actually I'm having the same problem.

I have an application that uses PyQt4, but none of the PyQt related files get bundled into the. Same problem here. I've tried everything I can think of, including changing working directory from script at start. App runs ok if started from terminal with "open myapp. Environment: OS X Yeah, all you'll get is Exited with code: as shown in the first post. See the debug run in the second post:. My script reads a text file on startup and that was the problem. I've changed to so it loads this text from a variable and it starts fine.

So now it works, but there is another part in the app when files must be read from disk and I'm having the same problem.

The file object is correctly instantiated, but the app crashes when I try to read the text into a variable. This is the code:. The file is plain text, and is user-selected using QFileDialog. As you can see, I'm even using os. Needless to say, everything works flawlessly when running in unfrozen mode. Again, everything works when I start the app from the terminal with open myapp.

I am stuck trying to imagine any difference between using the open command for an app object, versus double-clicking the icon for the same object. They should amount to the same thing. Googled everything and read Apple's man page on the open command which states that it's the same as double-clicking on an. Tried changing things in Info. Right-clicking on the. I'm getting kind of desperate. On Fri, Jun 10,David A. Riggs notifications github. When double-clicking the.

It must be segfaulting or something?The information above covers most normal uses of PyInstaller.

Subscribe to RSS

However, the variations of Python and third-party libraries are endless and unpredictable. It may happen that when you attempt to bundle your app either PyInstaller itself, or your bundled app, terminates with a Python traceback.

Then please consider the following actions in sequence, before asking for technical help. Code examples for some advanced uses and some common problems are available on our PyInstaller Recipes page.

Some of the recipes there include:. Many of these Recipes were contributed by users. Please feel free to contribute more recipes! When the Analysis step runs, it produces error and warning messages. These display after the command line if the --log-level option allows it.

Analysis creates a message when it detects an import and the module it names cannot be found. For example, many standard modules conditionally import modules for different platforms that may or may not be present. They are not displayed to standard output because there are many of them. Examine the warning file; often there will be dozens of modules not found, but their absence has no effect.

When you run the bundled app and it terminates with an ImportError, that is the time to examine the warning file. You can open it in any web browser. You can process it with any GraphViz command, e. For this reason the graph file is not very useful in this release. PyInstaller sometimes terminates by raising a Python exception. Others clearly indicate a bug that should be reported. One of these errors can be puzzling, however: IOError "Python library not found!

The name and location of this file varies depending on the platform in use. Some Python installations do not include a dynamic Python library by default a static-linked one may be present but cannot be used. You may need to install a development package of some kind. Or, the library may exist but is not in a folder where PyInstaller is searching.

pyinstaller mac app not working

Normally the debug progress messages go to standard output. If the --windowed option is used when bundling a Windows app, they are sent to any attached debugger.The syntax of the pyinstaller command is:. In the most simple case, set the current directory to the location of your program myscript. PyInstaller analyzes myscript. In the dist folder you find the bundled app you distribute to your users. Normally you name one script on the command line.

If you name more, all are analyzed and included in the output. However, the first script named supplies the name for the spec file and for the executable folder or file.

Its code is the first to execute at run-time. For certain uses you may edit the contents of myscript. After you do this, you name the spec file to PyInstaller instead of the script:. Because of its numerous options, a full pyinstaller command can become very long.

You will run the same command again and again as you develop your script. You can put the command in a shell script or batch file, using line continuations to make it readable. For example, in Linux:.

UPX is a free utility available for most operating systems. UPX compresses executable files and libraries, making them smaller, sometimes much smaller.

UPX is available for most operating systems and can compress a large number of executable file formats. See the UPX home page for downloads, and for the list of supported executable formats. UPX has no effect on those. A compressed executable program is wrapped in UPX startup code that dynamically decompresses the program when the program is launched. After it has been decompressed, the program runs normally.

In the case of a PyInstaller one-file executable that has been UPX-compressed, the full execution sequence is:. PyInstaller looks for UPX on the execution path or the path specified with the --upx-dir option. UPX has been used with PyInstaller output often, usually with no problems. For this to work, you must have the PyCrypto module installed. The key-string is a string of 16 characters which is used to encrypt each file of Python byte-code before it is stored in the archive inside the executable file.

If you distribute your application for only one combination of OS and Python, just install PyInstaller like any other package and use it in your normal development setup. When you need to bundle your application within one OS but for different versions of Python and support libraries — for example, a Python 3 version and a Python 2. With virtualenv you can maintain different combinations of Python and installed packages, and switch from one combination to another easily.

If you work only with Python 3. Under Windows, the pip-Win package installs virtualenv and makes it especially easy to set up different environments and switch between them. Under Linux and Mac OS, you switch environments at the command line. You can do this from a single machine using virtualization.PyInstaller is a normal Python package. You can download the archive from PyPibut it is easier to install using pip where is is available, for example:.

PyInstaller 3.6

For Windows, PyWin32 or the more recent pypiwin32is a prerequisite. If necessary, follow the pypiwin32 link to install it manually. It is particularly easy to use pip-Win to install PyInstaller along with the correct version of PyWin For more on the uses of virtualenv, see Supporting Multiple Platforms below. A new command shell window opens in which you can run commands within this environment.

Enter the command. Then you have a command shell window in which commands such as pyinstaller execute in that Python environment. PyInstaller works with the default Python 2. However, if you plan to use a later version of Python, or if you use any of the major packages such as PyQt, Numpy, Matplotlib, Scipy, and the like, we strongly recommend that you install these using either MacPorts or Homebrew.

PyInstaller users report fewer problems when they use a package manager than when they attempt to install major packages individually. If pip is not available, download the compressed archive from PyPI. If you are asked to test a problem using the latest development code, download the compressed archive from the develop branch of PyInstaller Downloads page.

Expand the archive. Inside is a script named setup. Execute python setup. After the bootloader has been created, use python setup. On all platforms, the command pyinstaller should now exist on the execution path. To verify this, enter the command:. The result should resemble 3. If you do not perform a complete installation installing via pip or executing setup. However, you can still execute all the functions documented below by running Python scripts found in the distribution folder.

PyInstaller stable. You can download the archive from PyPibut it is easier to install using pip where is is available, for example: pip install pyinstaller. When pip-Win is working, enter this command in its Command field and click Run: venv - c - i pyi - env - name.

To verify this, enter the command: pyinstaller -- version.

See Using PyInstaller. See Using Spec Files. See Inspecting Archives. See Inspecting Executables. See Capturing Windows Version Data. Read the Docs v: stable Versions latest stable v3.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *