Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pip does not respect --install-scripts (--install-option) when installing from git #5576

Closed
dmfigol opened this issue Jul 6, 2018 · 2 comments
Labels
auto-locked Outdated issues that have been locked by automation C: vcs pip's interaction with version control systems like git, svn and bzr resolution: duplicate Duplicate of an existing issue/PR type: bug A confirmed bug or unintended behavior

Comments

@dmfigol
Copy link

dmfigol commented Jul 6, 2018

Environment

  • pip version: 10.0.1
  • Python version: 3.6.6
  • OS: RHEL 7.4

Description

When I am installing the package from git with --install-scripts option it is not respected by pip. Console scripts are installed into the default location: .venv/bin
Most likely, it is happening because wheels are not used when --install-option is supplied.

Expected behavior

Console scripts should be installed in the directory specified by --install-scripts

Use-case

The package I am installing has custom dependencies from Git -> I would prefer to install it in virtualenv, however I also want to expose console_scripts to the known folder in PATH.

How to Reproduce

pip install -v --install-option="--install-scripts=<directory>" git+https://github.com/benoitc/gunicorn.git#egg=gunicorn
Output

$ pip install -v --install-option="--install-scripts=/local/bin" git+https://github.com/benoitc/gunicorn.git#egg=gunicorn
/local/projects/test-project/.venv/lib/python3.6/site-packages/pip/_internal/commands/install.py:199: UserWarning: Disabling all use of wheels due to the use of --build-options / --global-options / --install-options.
  cmdoptions.check_install_build_global(options)
Created temporary directory: /tmp/pip-ephem-wheel-cache-w98j7yla
Created temporary directory: /tmp/pip-install-26zspys0
Collecting gunicorn from git+https://github.com/benoitc/gunicorn.git#egg=gunicorn
  Cloning https://github.com/benoitc/gunicorn.git to /tmp/pip-install-26zspys0/gunicorn
  Running command git clone -q https://github.com/benoitc/gunicorn.git /tmp/pip-install-26zspys0/gunicorn
  Running setup.py (path:/tmp/pip-install-26zspys0/gunicorn/setup.py) egg_info for package gunicorn
    Running command python setup.py egg_info
    running egg_info
    creating pip-egg-info/gunicorn.egg-info
    writing pip-egg-info/gunicorn.egg-info/PKG-INFO
    writing dependency_links to pip-egg-info/gunicorn.egg-info/dependency_links.txt
    writing entry points to pip-egg-info/gunicorn.egg-info/entry_points.txt
    writing requirements to pip-egg-info/gunicorn.egg-info/requires.txt
    writing top-level names to pip-egg-info/gunicorn.egg-info/top_level.txt
    writing manifest file 'pip-egg-info/gunicorn.egg-info/SOURCES.txt'
    reading manifest file 'pip-egg-info/gunicorn.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
    writing manifest file 'pip-egg-info/gunicorn.egg-info/SOURCES.txt'
  Source in /tmp/pip-install-26zspys0/gunicorn has version 19.8.1, which satisfies requirement gunicorn from git+https://github.com/benoitc/gunicorn.git#egg=gunicorn
Building wheels for collected packages: gunicorn
  Created temporary directory: /tmp/pip-wheel-n8jw0723
  Running setup.py bdist_wheel for gunicorn ...   Destination directory: /tmp/pip-wheel-n8jw0723
  Running command /local/projects/test-project/.venv/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-26zspys0/gunicorn/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-n8jw0723 --python-tag cp36
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib
  creating build/lib/gunicorn
  copying gunicorn/util.py -> build/lib/gunicorn
  copying gunicorn/systemd.py -> build/lib/gunicorn
  copying gunicorn/sock.py -> build/lib/gunicorn
  copying gunicorn/six.py -> build/lib/gunicorn
  copying gunicorn/selectors.py -> build/lib/gunicorn
  copying gunicorn/reloader.py -> build/lib/gunicorn
  copying gunicorn/pidfile.py -> build/lib/gunicorn
  copying gunicorn/glogging.py -> build/lib/gunicorn
  copying gunicorn/errors.py -> build/lib/gunicorn
  copying gunicorn/debug.py -> build/lib/gunicorn
  copying gunicorn/config.py -> build/lib/gunicorn
  copying gunicorn/argparse_compat.py -> build/lib/gunicorn
  copying gunicorn/arbiter.py -> build/lib/gunicorn
  copying gunicorn/_compat.py -> build/lib/gunicorn
  copying gunicorn/__init__.py -> build/lib/gunicorn
  creating build/lib/gunicorn/workers
  copying gunicorn/workers/workertmp.py -> build/lib/gunicorn/workers
  copying gunicorn/workers/sync.py -> build/lib/gunicorn/workers
  copying gunicorn/workers/gtornado.py -> build/lib/gunicorn/workers
  copying gunicorn/workers/gthread.py -> build/lib/gunicorn/workers
  copying gunicorn/workers/ggevent.py -> build/lib/gunicorn/workers
  copying gunicorn/workers/geventlet.py -> build/lib/gunicorn/workers
  copying gunicorn/workers/gaiohttp.py -> build/lib/gunicorn/workers
  copying gunicorn/workers/base_async.py -> build/lib/gunicorn/workers
  copying gunicorn/workers/base.py -> build/lib/gunicorn/workers
  copying gunicorn/workers/_gaiohttp.py -> build/lib/gunicorn/workers
  copying gunicorn/workers/__init__.py -> build/lib/gunicorn/workers
  creating build/lib/gunicorn/instrument
  copying gunicorn/instrument/statsd.py -> build/lib/gunicorn/instrument
  copying gunicorn/instrument/__init__.py -> build/lib/gunicorn/instrument
  creating build/lib/gunicorn/http
  copying gunicorn/http/wsgi.py -> build/lib/gunicorn/http
  copying gunicorn/http/unreader.py -> build/lib/gunicorn/http
  copying gunicorn/http/parser.py -> build/lib/gunicorn/http
  copying gunicorn/http/message.py -> build/lib/gunicorn/http
  copying gunicorn/http/errors.py -> build/lib/gunicorn/http
  copying gunicorn/http/body.py -> build/lib/gunicorn/http
  copying gunicorn/http/_sendfile.py -> build/lib/gunicorn/http
  copying gunicorn/http/__init__.py -> build/lib/gunicorn/http
  creating build/lib/gunicorn/app
  copying gunicorn/app/wsgiapp.py -> build/lib/gunicorn/app
  copying gunicorn/app/pasterapp.py -> build/lib/gunicorn/app
  copying gunicorn/app/base.py -> build/lib/gunicorn/app
  copying gunicorn/app/__init__.py -> build/lib/gunicorn/app
  running egg_info
  creating gunicorn.egg-info
  writing gunicorn.egg-info/PKG-INFO
  writing dependency_links to gunicorn.egg-info/dependency_links.txt
  writing entry points to gunicorn.egg-info/entry_points.txt
  writing requirements to gunicorn.egg-info/requires.txt
  writing top-level names to gunicorn.egg-info/top_level.txt
  writing manifest file 'gunicorn.egg-info/SOURCES.txt'
  reading manifest file 'gunicorn.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no previously-included files matching '__pycache__' found under directory '*'
  warning: no previously-included files matching '*.py[co]' found under directory '*'
  writing manifest file 'gunicorn.egg-info/SOURCES.txt'
  warning: build_py: byte-compiling is disabled, skipping.

  installing to build/bdist.linux-x86_64/wheel
  running install
  running install_lib
  creating build/bdist.linux-x86_64
  creating build/bdist.linux-x86_64/wheel
  creating build/bdist.linux-x86_64/wheel/gunicorn
  creating build/bdist.linux-x86_64/wheel/gunicorn/app
  copying build/lib/gunicorn/app/__init__.py -> build/bdist.linux-x86_64/wheel/gunicorn/app
  copying build/lib/gunicorn/app/base.py -> build/bdist.linux-x86_64/wheel/gunicorn/app
  copying build/lib/gunicorn/app/pasterapp.py -> build/bdist.linux-x86_64/wheel/gunicorn/app
  copying build/lib/gunicorn/app/wsgiapp.py -> build/bdist.linux-x86_64/wheel/gunicorn/app
  creating build/bdist.linux-x86_64/wheel/gunicorn/http
  copying build/lib/gunicorn/http/__init__.py -> build/bdist.linux-x86_64/wheel/gunicorn/http
  copying build/lib/gunicorn/http/_sendfile.py -> build/bdist.linux-x86_64/wheel/gunicorn/http
  copying build/lib/gunicorn/http/body.py -> build/bdist.linux-x86_64/wheel/gunicorn/http
  copying build/lib/gunicorn/http/errors.py -> build/bdist.linux-x86_64/wheel/gunicorn/http
  copying build/lib/gunicorn/http/message.py -> build/bdist.linux-x86_64/wheel/gunicorn/http
  copying build/lib/gunicorn/http/parser.py -> build/bdist.linux-x86_64/wheel/gunicorn/http
  copying build/lib/gunicorn/http/unreader.py -> build/bdist.linux-x86_64/wheel/gunicorn/http
  copying build/lib/gunicorn/http/wsgi.py -> build/bdist.linux-x86_64/wheel/gunicorn/http
  creating build/bdist.linux-x86_64/wheel/gunicorn/instrument
  copying build/lib/gunicorn/instrument/__init__.py -> build/bdist.linux-x86_64/wheel/gunicorn/instrument
  copying build/lib/gunicorn/instrument/statsd.py -> build/bdist.linux-x86_64/wheel/gunicorn/instrument
  creating build/bdist.linux-x86_64/wheel/gunicorn/workers
  copying build/lib/gunicorn/workers/__init__.py -> build/bdist.linux-x86_64/wheel/gunicorn/workers
  copying build/lib/gunicorn/workers/_gaiohttp.py -> build/bdist.linux-x86_64/wheel/gunicorn/workers
  copying build/lib/gunicorn/workers/base.py -> build/bdist.linux-x86_64/wheel/gunicorn/workers
  copying build/lib/gunicorn/workers/base_async.py -> build/bdist.linux-x86_64/wheel/gunicorn/workers
  copying build/lib/gunicorn/workers/gaiohttp.py -> build/bdist.linux-x86_64/wheel/gunicorn/workers
  copying build/lib/gunicorn/workers/geventlet.py -> build/bdist.linux-x86_64/wheel/gunicorn/workers
  copying build/lib/gunicorn/workers/ggevent.py -> build/bdist.linux-x86_64/wheel/gunicorn/workers
  copying build/lib/gunicorn/workers/gthread.py -> build/bdist.linux-x86_64/wheel/gunicorn/workers
  copying build/lib/gunicorn/workers/gtornado.py -> build/bdist.linux-x86_64/wheel/gunicorn/workers
  copying build/lib/gunicorn/workers/sync.py -> build/bdist.linux-x86_64/wheel/gunicorn/workers
  copying build/lib/gunicorn/workers/workertmp.py -> build/bdist.linux-x86_64/wheel/gunicorn/workers
  copying build/lib/gunicorn/__init__.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/_compat.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/arbiter.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/argparse_compat.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/config.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/debug.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/errors.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/glogging.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/pidfile.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/reloader.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/selectors.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/six.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/sock.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/systemd.py -> build/bdist.linux-x86_64/wheel/gunicorn
  copying build/lib/gunicorn/util.py -> build/bdist.linux-x86_64/wheel/gunicorn
  warning: install_lib: byte-compiling is disabled, skipping.

  running install_egg_info
  Copying gunicorn.egg-info to build/bdist.linux-x86_64/wheel/gunicorn-19.8.1-py3.6.egg-info
  running install_scripts
  creating build/bdist.linux-x86_64/wheel/gunicorn-19.8.1.dist-info/WHEEL
  creating '/tmp/pip-wheel-n8jw0723/gunicorn-19.8.1-py2.py3-none-any.whl' and adding '.' to it
  adding 'gunicorn/__init__.py'
  adding 'gunicorn/_compat.py'
  adding 'gunicorn/arbiter.py'
  adding 'gunicorn/argparse_compat.py'
  adding 'gunicorn/config.py'
  adding 'gunicorn/debug.py'
  adding 'gunicorn/errors.py'
  adding 'gunicorn/glogging.py'
  adding 'gunicorn/pidfile.py'
  adding 'gunicorn/reloader.py'
  adding 'gunicorn/selectors.py'
  adding 'gunicorn/six.py'
  adding 'gunicorn/sock.py'
  adding 'gunicorn/systemd.py'
  adding 'gunicorn/util.py'
  adding 'gunicorn/app/__init__.py'
  adding 'gunicorn/app/base.py'
  adding 'gunicorn/app/pasterapp.py'
  adding 'gunicorn/app/wsgiapp.py'
  adding 'gunicorn/http/__init__.py'
  adding 'gunicorn/http/_sendfile.py'
  adding 'gunicorn/http/body.py'
  adding 'gunicorn/http/errors.py'
  adding 'gunicorn/http/message.py'
  adding 'gunicorn/http/parser.py'
  adding 'gunicorn/http/unreader.py'
  adding 'gunicorn/http/wsgi.py'
  adding 'gunicorn/instrument/__init__.py'
  adding 'gunicorn/instrument/statsd.py'
  adding 'gunicorn/workers/__init__.py'
  adding 'gunicorn/workers/_gaiohttp.py'
  adding 'gunicorn/workers/base.py'
  adding 'gunicorn/workers/base_async.py'
  adding 'gunicorn/workers/gaiohttp.py'
  adding 'gunicorn/workers/geventlet.py'
  adding 'gunicorn/workers/ggevent.py'
  adding 'gunicorn/workers/gthread.py'
  adding 'gunicorn/workers/gtornado.py'
  adding 'gunicorn/workers/sync.py'
  adding 'gunicorn/workers/workertmp.py'
  adding 'gunicorn-19.8.1.dist-info/LICENSE.txt'
  adding 'gunicorn-19.8.1.dist-info/entry_points.txt'
  adding 'gunicorn-19.8.1.dist-info/top_level.txt'
  adding 'gunicorn-19.8.1.dist-info/WHEEL'
  adding 'gunicorn-19.8.1.dist-info/METADATA'
  adding 'gunicorn-19.8.1.dist-info/RECORD'
  removing build/bdist.linux-x86_64/wheel
done
  Stored in directory: /tmp/pip-ephem-wheel-cache-w98j7yla/wheels/81/29/b5/e3e54c1e72857e42d1f78871c19a26bbbf07fce198afd5a426
  Removing source in /tmp/pip-install-26zspys0/gunicorn
Successfully built gunicorn
Installing collected packages: gunicorn

  changing mode of /local/projects/test-project/.venv/bin/gunicorn to 755
  changing mode of /local/projects/test-project/.venv/bin/gunicorn_paster to 755
Successfully installed gunicorn-19.8.1
Cleaning up...
(test-project)dmitry@rhel:/local/projects/test-project
@cjerdonek
Copy link
Member

Closing as a duplicate of: #5518

@cjerdonek cjerdonek added C: vcs pip's interaction with version control systems like git, svn and bzr resolution: duplicate Duplicate of an existing issue/PR type: bug A confirmed bug or unintended behavior and removed S: needs triage Issues/PRs that need to be triaged labels Apr 8, 2019
@cjerdonek cjerdonek changed the title pip does not respect --install-scripts when installing a library from git pip does not respect --install-scripts (--install-option) when installing from git Apr 8, 2019
@lock
Copy link

lock bot commented May 28, 2019

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@lock lock bot added the auto-locked Outdated issues that have been locked by automation label May 28, 2019
@lock lock bot locked as resolved and limited conversation to collaborators May 28, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
auto-locked Outdated issues that have been locked by automation C: vcs pip's interaction with version control systems like git, svn and bzr resolution: duplicate Duplicate of an existing issue/PR type: bug A confirmed bug or unintended behavior
Projects
None yet
Development

No branches or pull requests

3 participants