8

Breaking 'pip install' to smaller steps, so I can modify the package before it i...

 3 years ago
source link: https://www.codesd.com/item/breaking-pip-install-to-smaller-steps-so-i-can-modify-the-package-before-it-is-installed.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Breaking 'pip install' to smaller steps, so I can modify the package before it is installed

advertisements

My familiarity with pip ends up with the ability to do: 'pip install', 'pip uninstall', and 'pip list' - with the name of the package I want to install as the single argument.

This limited knowledge carried me so far, to the extent I'm able to install most of the simple packages, and sometime, when I'm luck, I'm even able to install packages that requires compilation. This is all magic for me.

I'm now facing a situation where I need to do a little bit of editing to the C file (side note: this seems to be a known workaround for the 'netifaces' package - which everyone seems to be in peace with. By itself this is an amazing phenomena).

So I would like to break the installation into smaller steps:

  1. Download the egg file (I've figured out this one: pip install --download).
  2. Unzip or otherwise unpackage the package file, to the point I can edit individual
  3. Do my custom modification.
  4. Do the build
  5. Do the installation.

Other than step #1, I don't know how to proceed.


  1. Install the package with --no-install option; with --no-install option, pip downloads and unpacks all packages, but does not actually install the package.

    pip install --no-install netifaces
    
    
  2. Change to the build directory. If you don't know where is the build directory, issue above command again, then it display the location.

    cd /tmp/pip_build_falsetru/netifaces
    
    
  3. Do the custom modification.

  4. Install the package using pip install . (add --no-clean option if you want keep the build directory) or python setup.py install.

    sudo pip install --no-clean .
    
    
  5. Clear the build directory.


UPDATE

pip 1.5 deprecated install --no-install.

Step 1, Step 2 should be replaced as:

pip install -d . --allow-external netifaces --allow-unverified netifaces netifaces
tar xzf netifaces-0.8.tar.gz     # Unpack the downloaded file.
cd netifaces-0.8




About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK