# How to create an AppImage?

**URL:** <https://discourse.appimage.org/t/how-to-create-an-appimage/155>\
**Category:** Creating AppImages\
**Created:** [March 2, 2017, 9:24pm UTC](https://discourse.appimage.org/t/how-to-create-an-appimage/155 "2017-03-02T21:24:10Z")\
**Posts on this page:** 1\
**Showing post:** 28

<div class="post-metadata">

**Author:** ![bittner](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.appimage.org/bittner/32/182_2.png) [@bittner](https://discourse.appimage.org/u/bittner)\
**Post date:** [October 7, 2018, 9:38pm UTC](https://discourse.appimage.org/t/how-to-create-an-appimage/155/28 "2018-10-07T21:38:37Z")

</div>

I’m trying to create an AppImage from a Python3 application using a YAML file. But I find it extremely hard to understand how to turn this into an AppImage. The documentation is somehow missing what I’m looking for:

- I create an AppImage from source, but I would like to avoid [creating an AppDir manually](https://docs.appimage.org/packaging-guide/overview.html#manually-creating-an-appdir).
- We have a Python package on PyPI, and we can install the [development version from GitHub](https://github.com/cool-RR/PythonTurtle/) using `pip`
- The [Automated continuous builds on Travis CI](https://docs.appimage.org/packaging-guide/overview.html#automated-continuous-builds-on-travis-ci) sounds a bit like, “if you use Travis but don’t know what you’re doing” – what kind of magic does this do? I want to have control!
- I found an example YAML ([orschiro/dslli](https://github.com/orschiro/dslli/blob/master/show_state.yml)), which was supported/co-created by you, @probono, obviously. But no Travis configuration or documentation on which command(s) to use to turn that into an AppImage in their project README either.
- Finally, I found the [Wiki, which points to the `pkg2appimage` script](https://github.com/AppImage/AppImageKit/wiki/Creating-AppImages), and I’m tempted to download it and give it a try. But I’m not really sure what it does (seems to be a lot of sed magic, wget, and stuff).

Is that really it? Why does it all seem so complicated? (… when you don’t do Electron, obviously)

**P.S.:** _Please understand this as some feedback from someone jumping into the AppImage topic; and please notice that I’m not really a programming and packaging novice._

Here’s my YAML:

```
app: PythonTurtle

ingredients:
  # there is no python3-wxgtk4.0 on Trusty -> we must use Bionic
  dist: bionic
  sources:
    - deb http://archive.ubuntu.com/ubuntu/ bionic main universe
  packages:
    - python3-minimal
    - python3-pip
    - python3-wxgtk4.0
  script:
    - python3 -m pip install --no-binary=PythonTurtle git+https://github.com/cool-RR/PythonTurtle

script:
  - cat > /usr/share/applications/PythonTurtle.desktop <<EOF
  - [Desktop Entry]
  - Version=1.0
  - Type=Application
  - Terminal=false
  - Name=Python Turtle
  - Exec=PythonTurtle %u
  - Icon=/usr/local/lib/python3.6/dist-packages/PythonTurtle/resources/turtle.png
  - Comment=Learning environment for Python
  - Categories=Education;
  - EOF
```

---

_[View the full topic](https://discourse.appimage.org/t/how-to-create-an-appimage/155)._
