{"id":13505491,"url":"https://github.com/srevinsaju/pyappimage","last_synced_at":"2025-10-29T04:32:19.741Z","repository":{"id":47491076,"uuid":"289064804","full_name":"srevinsaju/pyappimage","owner":"srevinsaju","description":"AppImage builder, just for python. ","archived":false,"fork":false,"pushed_at":"2021-10-08T07:57:41.000Z","size":123,"stargazers_count":17,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-13T21:12:50.523Z","etag":null,"topics":["appimage","appimage-builder","appimages","binary","hacktoberfest","packaging","packaging-python","python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/srevinsaju.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}},"created_at":"2020-08-20T17:12:45.000Z","updated_at":"2023-10-26T20:04:04.000Z","dependencies_parsed_at":"2022-09-09T17:01:04.206Z","dependency_job_id":null,"html_url":"https://github.com/srevinsaju/pyappimage","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srevinsaju%2Fpyappimage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srevinsaju%2Fpyappimage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srevinsaju%2Fpyappimage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srevinsaju%2Fpyappimage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/srevinsaju","download_url":"https://codeload.github.com/srevinsaju/pyappimage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238768507,"owners_count":19527213,"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":["appimage","appimage-builder","appimages","binary","hacktoberfest","packaging","packaging-python","python","python3"],"created_at":"2024-08-01T00:01:08.955Z","updated_at":"2025-10-29T04:32:19.401Z","avatar_url":"https://github.com/srevinsaju.png","language":"Python","funding_links":[],"categories":["AppImage developer tools"],"sub_categories":["Deployment tools for Python applications"],"readme":"\u003ch1 align=\"center\"\u003e\n\t\u003cimg src=\"pyappimage/assets/pyappimage.svg\" alt=\"PyAppImage\" height=200 width=200 align=\"middle\"\u003e\n\tPyAppImage :snake:\n\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003e\n\tCreate optimized Python AppImages, faster!\n\u003c/h3\u003e\n\u003cdiv align=\"center\"\u003e\n\n[![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/)\u003cbr/\u003e\u003cbr/\u003e\n\n![Python application](https://github.com/srevinsaju/pyappimage/workflows/Python%20application/badge.svg) ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/srevinsaju/pyappimage) ![GitHub](https://img.shields.io/github/license/srevinsaju/pyappimage) ![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/srevinsaju/pyappimage?sort=semver) [![irc](https://img.shields.io/badge/IRC-%23AppImage%20on%20freenode-blue.svg)](https://webchat.freenode.net/?channels=AppImage) \n\n[![Mentioned in Awesome AppImage](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/AppImage/awesome-appimage)\n\n![GitHub followers](https://img.shields.io/github/followers/srevinsaju?label=Follow%20me\u0026style=social) ![GitHub stars](https://img.shields.io/github/stars/srevinsaju/zap?style=social)\n\u003c/div\u003e\n\n## Getting Started\n\u003e The project is still in beta. Consider reporting bugs to help development and release a stable version;\n\n### Download `pyappimage`\n\n* Choose the Python Version. Currently, the supported Python versions are `3.6`, `3.7` and `3.8`. \nThese AppImages are built using [python-appimage](https://github.com/niess/python-appimage) which \nincludes the Python Interpreter. See [why not `pyappimage`](#why-not-pyappimage) section for more\ndetails. Corresponding to the python version, binaries will be built, using [PyInstaller]\n(https://github.com/PyInstaller/PyInstaller) and are processed to make the necessary changes.\n\n* Get the latest `pyappimage.AppImage` to begin development\n\n### PyAppImage tutorial \n\nHere are some small tutorials to package some applications, and to workaround bugs when packaging software\n\n1. Hello World AppImage\n2. [Packaging Archivy](guides/archivy.md)\n3. [Packaging AppImageLint](guides/appimagelint.md)\n\n\n\n### Configuration parameters\n`pyappimage` can be configured using the following parameters\n\n#### `entrypoint`\nEntrypoint is a path to the function. It is normally in the format\n```python\nfolder.script:function\n```\nhere, the function located in `script` file, of which the script file is\n located in the `folder` called `folder` is executed.\n\n\u003cbr\u003e\n\n#### Environment Variables\n\nEnvironment variables can be set before the appimage entrypoint is called. \nThis can be useful in defining AppImage based variables or conditionally executing some functions when the app is being run within an appimage, \n\n```yml\nenvironment: \n  HELLO: TEST\n```\n\nThis will be translated to \n\n```bash\nexport HELLO=TEST\n```\n\n\u003cbr\u003e\n\n#### Include additional data to AppImage\n\nThese are `data` objects, including items like `png`, `json`, `txt` items which you would like to place in the AppImage. Just simple add\n\n```\ndata: \n  $CWD/somefile/photo.png: $APPIMAGE/photo.png\n  /usr/share/icons/myphoto.svg: $APPIMAGE/icons/icon.png\n```\n\n\u003cbr\u003e\n\n#### Custom Icon\n\nPlace `\u003cappname\u003e.png` in the `pyappimage` directory, and it will be automatically set as the AppImage dir icon. \n\n\u003cbr\u003e\n\n#### Custom Desktop File\n\n`pyappimage` automatically generates the desktop file for you. If you want to override the desktop file generated by `pyappimage`, you can add a `\u003cappname\u003e.desktop` desktop file in the `pyappimage` directory, and that will be added. Make sure that your desktop file matches FreeDesktop's standards.\n\n\n## When to use `pyappimage` ?\n\n### Use `pyappimage` when\n* You are creating a command line application\n* Your application has reached `beta` stage\n* If you have intermediate coding skills on Python\n* You are writing an Hello World Application which does not need the entire Python interpreter\n* If you are worried about the huge python appimage\n* If you are highly experienced with PyInstaller or nuitka\n\n### Do not use `pyappimage` when\n* If your project is still in alpha\n* If your project requirements are not properly written\n* If you do not have a `setup.py`\n* If you are building a Qt Application? (needs more references. `PyQt` pyappimage weighed 119 MB on `guiscrcpy`, so the difference is very tiney)\n\n\n## Similar projects\n[Awesome AppImage Python development tools](https://github.com/AppImage/awesome-appimage#deployment-tools-for-python-applications) provide a list of Awesome\ntools to speed up distributing your python apps. Do check them out.\n`pyappimage-*.AppImage` which you use to build your optimized Python AppImages itself use @niess 's [python-appimage](https://github.com/niess/python-appimage).\nBecause `pyappimage` needs a real python interpreter to bundle Python appimages for you!\n\n\n\n## License\n\n```\nMIT License\n\nCopyright (c) 2020 Srevin Saju\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n\n## Copyright\n(c) Srevin Saju 2020\n\nPyAppImage logo is a remix of the [Papirus Icon Theme](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrevinsaju%2Fpyappimage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsrevinsaju%2Fpyappimage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrevinsaju%2Fpyappimage/lists"}