pypa / pypa/setuptools

setuptools doesn't replace shebang from build directory when installing

Open
#847 6 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Needs Triage
Dominant language
Python
Stars
2.9k
Forks
1.4k
Avg merge
1d 1h
Merged PRs (30d)
1

Description

  • Pip version: 8.1.1
  • Python version: 2.6
  • Operating System: CentOS 6
Description:

I have a small python module with some scripts that I run in a virtual environment. My Makefile looks like this:

default: build

.DEFAULT:
    ./setup.py $@

build:
    ./setup.py build

/path/to/venv/bin/activate:
    virtualenv --system-site-packages /path/to/venv

install: /path/to/venv/bin/activate
    /path/to/venv/bin/pip install .

Now if I have a fresh install and run make install everything works great, and at the top of all of my scripts in $VENV/bin I have the following shebang:

#!/path/to/venv/bin/python

but if I first run make build and then make install then I get the system python in the shebang:

#!/usr/bin/python

I guess I would have expected the setup process to check and replace the shebang to the virtual environment's python.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue with the mentioned Makefile, setup.py, and /path/to/venv/bin/pip install .: compare a fresh install with one after make build. Inspect the build and install entry points that handle script shebangs, then verify that installed scripts retain the virtual environment's Python path after both workflows.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.