• Cicucci

    So I thought it would be cool to have a package installer, and have it be callable via a get request from a browser. The following gist is the code I have for the installer:


    It can be used like:

    from Pypi import Installer
    Installer('Flask', '0.9').install()

    It will attempt to download the package (no dependencies though) via Pypi. Keep in mind that Pypi is case sensitive, so make sure the first argument is correct (for instance flask is 'Flask' but bottle is 'bottle'). If you are unsure, check the download URL on Pypi's site.

    It also currently only checks for two types of sources in the tarball. Either a directory with the package name (lowercase) or a single python file with the package name (like bottle.py). This seems to have covered all the packages I have attempted (but maybe not everything).

    Lastly, keep in mind, even though you can install a package, doesn't mean it will work.

    Next, to create a web server, first use the installer to install Flask, Werkzeug, and Jinja2:

    from Pypi import Installer
    Installer('Flask', '0.9').install()
    Installer('Werkzeug', '0.8.3').install()
    Installer('Jinja2', '2.6').install()

    Then download this gist which has a demo Flask Server:


    After running this Flask Server, it will tell you your IP address. In a browser, you can now install packages on your device by going to 'http://IP_ADDRESS:5000/install?package=Flask&version=0.9' while it is running, replacing of course the package and version you want.

    The server is more of a demo, it would probably be better off serving some form instead of using the URL. Also, note that Flask's debug mode does not appear to work, as it complains it is not running on the main thread.

    Let me know if you improve on anything!

    posted in Pythonista read more
  • Cicucci

    Sorry it took so long to get back to all of you. Didn't realize this got any responses.

    @tturchi: I looked at MySQL-python. There are two reasons why it doesn't work. 1.) The latest version (1.2.4) uses a zip file rather than a tar.gz. The script assumes a tar file, so I need to make this script more flexible. 2.) Version 1.2.3, which uses a tar file, doesn't have the normally named source file/folder inside it. Since it doesn't see what it expects, it doesn't copy it. I haven't figured out the best way to "discover" all the sources within a Pypi module properly yet.

    @Filippoclaudi: As for a Remove function, I can easily add that. Although, why not just use Pythonista's delete file/folder from its main menu?

    @acescon: This script doesn't "install" pypi packages in the true sense of the word. It just does its best to extract the source files out of Pypi tar files and put them in the main directory for you to be able to import. In other words, it puts the source files in the same area you write your own files. Pythonista doesn't know that you didn't right them. So, if you can import your own code and it works, you should be able to import Pypi sources and have it work.

    posted in Pythonista read more

Internal error.

Oops! Looks like something went wrong!