{"id":27429308,"url":"https://github.com/akascape/universal2maker","last_synced_at":"2026-02-25T09:34:27.885Z","repository":{"id":287705196,"uuid":"965530088","full_name":"Akascape/Universal2Maker","owner":"Akascape","description":"An application that helps create universal wheels for Python packages.","archived":false,"fork":false,"pushed_at":"2025-04-13T14:20:06.000Z","size":43,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T14:16:52.631Z","etag":null,"topics":["arm64","macos-app","macosx","pyinstaller-packaging","pypi-packages","pypi-source","python3","universal2"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Akascape.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-13T11:20:02.000Z","updated_at":"2025-04-13T21:34:11.000Z","dependencies_parsed_at":"2025-04-13T13:32:53.545Z","dependency_job_id":null,"html_url":"https://github.com/Akascape/Universal2Maker","commit_stats":null,"previous_names":["akascape/universal2maker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akascape%2FUniversal2Maker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akascape%2FUniversal2Maker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akascape%2FUniversal2Maker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akascape%2FUniversal2Maker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Akascape","download_url":"https://codeload.github.com/Akascape/Universal2Maker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248894943,"owners_count":21179153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arm64","macos-app","macosx","pyinstaller-packaging","pypi-packages","pypi-source","python3","universal2"],"created_at":"2025-04-14T14:16:57.101Z","updated_at":"2026-02-25T09:34:27.844Z","avatar_url":"https://github.com/Akascape.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Universal2Maker for Mac 🍎\nA simple GUI application to create universal wheels for Python packages in MacOS.\nThis application allows users to input a package name, checks its availability on PyPI, installs the package for both x86_64 and arm64 architectures, merges the wheels into a universal wheel, and provides an option to install the universal wheel or save it to a specified location.\n\n![Screenshot](https://github.com/user-attachments/assets/3f1ae609-d4d3-4bf1-a771-7f7b84effedd)\n\n## Why use this tool?\nWhile converting a Python application to executable binaries using PyInstaller, some non-pure Python packages behave differently on both x86_64 (Intel) and arm64 (Apple Silicon). To ensure a universal app that runs on both architectures, we need to use the universal version of these packages.\n\nTo create a universal version of the Python app, we use the `—target-architecture “universal2”` option in PyInstaller. If not specified, the device’s native architecture is used. For instance, if your app is arm64-based, it may not work on an x86_64 Mac (unless Rosetta is used). Therefore, it’s recommended to use the universal2 target.\n\nDuring the conversion process, some packages may display errors because they are distributed separately for both Intel and Apple Silicon. To resolve this issue, we need to obtain the universal version (non-binary) of the package. Not all packages come with universal bindings, for example, Pillow.\n\nTo fix this, we can download both wheels for Intel and Silicon, then combine them into a single universal wheel using the [delocate](https://pypi.org/project/delocate/) package. Finally, we can install the universal version to ensure compatibility across all machines.\n\nUniversal2Maker is a simple application that automates this process. Simply enter the package name, and it will generate and install the universal package for you in seconds.\n\n## How to install\n- Make sure you are using python3 universal version\n- Download the source code:\n### [\u003cimg alt=\"GitHub repo size\" src=\"https://img.shields.io/github/repo-size/Akascape/Universal2Maker?\u0026color=white\u0026label=Download%20Source%20Code\u0026logo=Python\u0026logoColor=yellow\u0026style=for-the-badge\"  width=\"400\"\u003e](https://github.com/Akascape/Universal2Maker/archive/refs/heads/main.zip)\n\n- Download the dependencies using **pip3**:\n  - tk\n  - customtkinter\n  - delocate\n  - requests\n- Run the *universal2maker.py*\n- Type the package name and click on `Install` button\n\n🧾 Read this guide for more details: [https://www.akascape.com/coding/universal-app-in-pyinstaller](https://www.akascape.com/coding/universal-app-in-pyinstaller)\n\nFollow me for more tools like this: [`Akascape`](https://github.com/Akascape/)\n### That's all, hope it will help!\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakascape%2Funiversal2maker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakascape%2Funiversal2maker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakascape%2Funiversal2maker/lists"}