How to manually install a pypi module without pip/easy_install?

Question:

I want to use the gntp module to display toaster-like notifications for C/C++ software. I want to package all the dependencies for the software to be self-executable on another computer.

The gntp module is only available through the pip installer, which cannot be used (the computer running the software does not have an internet connection)

How can I install it from source?

I would prefer not to force the user to install easy_install/pip and manually add the pip path to the %PATH.

PS: I’m using Python 2.7 on a Windows machine.

Asked By: lucasg

||

Answers:

  1. Download the package
  2. unzip it if it is zipped
  3. cd into the directory containing setup.py
  4. If there are any installation instructions contained in documentation, read and follow the instructions
    OTHERWISE
  5. type in python setup.py install

You may need administrator privileges for step 5. What you do here depends on your operating system. For example in Ubuntu you would say sudo python setup.py install


EDIT– thanks to kwatford (see first comment)

To bypass the need for administrator privileges during step 5 above you may be able to make use of the --user flag. This way you can install the package only for the current user.

The docs say:

Files will be installed into subdirectories of site.USER_BASE (written as userbase hereafter). This scheme installs pure Python modules and extension modules in the same location (also known as site.USER_SITE).

More details can be found here: http://docs.python.org/2.7/install/index.html

Answered By: Sheena

Even though Sheena’s answer does the job, pip doesn’t stop just there.

From Sheena’s answer:

  1. Download the package
  2. unzip it if it is zipped
  3. cd into the directory containing setup.py
  4. If there are any installation instructions contained in documentation contained herein, read and follow the instructions
    OTHERWISE
  5. type in python setup.py install

At the end of this, you’ll end up with a .egg file in site-packages.
As a user, this shouldn’t bother you. You can import and uninstall the package normally. However, if you want to do it the pip way, you can continue the following steps.

In the site-packages directory,

  1. unzip <.egg file>
  2. rename the EGG-INFO directory as <pkg>-<version>.dist-info
  3. Now you’ll see a separate directory with the package name, <pkg-directory>
  4. find <pkg-directory> > <pkg>-<version>.dist-info/RECORD
  5. find <pkg>-<version>.dist-info >> <pkg>-<version>.dist-info/RECORD. The >> is to prevent overwrite.

Now, looking at the site-packages directory, you’ll never realize you installed without pip. To uninstall, just do the usual pip uninstall <pkg>.

Answered By: John Strood

To further explain Sheena’s answer, I needed to have setup-tools installed as a dependency of another tool e.g. more-itertools.

Download

Click the Clone or download button and choose your method. I placed these into a dev/py/libs directory in my user home directory. It does not matter where they are saved, because they will not be installed there.

Installing setup-tools

You will need to run the following inside the setup-tools directory.

python bootstrap.py
python setup.py install

General dependencies installation

Now you can navigate to the more-itertools direcotry and install it as normal.

  1. Download the package
  2. Unpackage it if it’s an archive
  3. Navigate (cd ...) into the directory containing setup.py
  4. If there are any installation instructions contained in the documentation contained herein, read and follow the instructions OTHERWISE
  5. Type in: python setup.py install
Answered By: Mr. Polywhirl
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.