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-accel is not compatible with -e editable installs of packages that use setuptools_scm #71

Open
mrmachine opened this issue Jun 6, 2016 · 2 comments

Comments

@mrmachine
Copy link

setuptools_scm is "the blessed package to manage your versions by scm tags". So your package version will be determined by a git tag, instead of a hard coded string inside your application code. So you don't need a "bump version" commit for every source code change just to release a new package.

pip-accel downloads -e editable packages from git to a bare repository in a temporary directory, and then checks out a working copy from the bare repository into a src directory, then tries to install.

Problem is, this working copy does not have access to the git repository from which it was checked out. So setuptools_scm is unable to determine its version number, and installation fails.

setuptools_scm is designed to allow installation without access to the git repository only when it is already packaged and this metadata is baked into the egg. Without this metadata, and without access to the git repository, setuptools_scm cannot work from a bare working copy.

pip-accel should behave more like pip, and clone a normal repository to the src directory and install from there.

@xolox
Copy link
Member

xolox commented Jun 6, 2016

Do you have an easy way for me to reproduce the issue, as in a publicly available SCM repository suitable for installation using pip install -e that's using setuptools_scm which works with pip but fails with pip-accel?

I completely agree that pip-accel should be as compatible with pip as possible, unfortunately I'm not sure whether that's a realistic option (for this bug report) given the way that pip and pip-accel integrate. I can try though, which is what I'll do!

@mrmachine
Copy link
Author

Sure thing. Here are some logs demonstrating the problem.

First, make a fresh venv and install pip-accel:

~ ❯❯❯ mkvirtualenv test-pip-accel                                                                                                                                               master ✭ ✚ ✖ ◼
New python executable in /Users/tailee/.virtualenvs/test-pip-accel/bin/python2.7
Also creating executable in /Users/tailee/.virtualenvs/test-pip-accel/bin/python
Please make sure you remove any previous custom paths from your /Users/tailee/.pydistutils.cfg file.
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /Users/tailee/.virtualenvs/test-pip-accel/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/tailee/.virtualenvs/test-pip-accel/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/tailee/.virtualenvs/test-pip-accel/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/tailee/.virtualenvs/test-pip-accel/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/tailee/.virtualenvs/test-pip-accel/bin/get_env_details
(test-pip-accel) ~ ❯❯❯ pip install pip-accel                                                                                                                                    master ✭ ✚ ✖ ◼
Collecting pip-accel
Collecting coloredlogs>=3.0 (from pip-accel)
Collecting pip<7.2,>=7.0 (from pip-accel)
  Downloading https://devpi.ixcsandbox.com/root/pypi/+f/5ff/9fec0be479e4e/pip-7.1.2-py2.py3-none-any.whl (1.1MB)
    100% |████████████████████████████████| 1.1MB 418kB/s 
Collecting cached-property>=0.1.5 (from pip-accel)
  Downloading https://devpi.ixcsandbox.com/root/pypi/+f/6ee/d185585787079/cached_property-1.3.0-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): setuptools>=7.0 in ./.virtualenvs/test-pip-accel/lib/python2.7/site-packages (from pip-accel)
Collecting humanfriendly>=1.42 (from pip-accel)
Installing collected packages: humanfriendly, coloredlogs, pip, cached-property, pip-accel
  Found existing installation: pip 8.1.2
    Uninstalling pip-8.1.2:
      Successfully uninstalled pip-8.1.2
Successfully installed cached-property-1.3.0 coloredlogs-5.0 humanfriendly-1.44.7 pip-7.1.2 pip-accel-0.43
You are using pip version 7.1.2, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Then try to install git+https://github.com/ixc/django-fluent-pages.git@371c9711a3d26f967a9838766e32616d6b23a8b3#egg=django-fluent-pages with pip-accel:

(test-pip-accel) ~ ❯❯❯ pip-accel install -e 'git+https://github.com/ixc/django-fluent-pages.git@371c9711a3d26f967a9838766e32616d6b23a8b3#egg=django-fluent-pages'             ⏎ master ✭ ✚ ✖ ◼
2016-06-06 20:04:05 Tais-Air.fritz.box pip_accel[29835] INFO Unpacking distribution(s) ..
2016-06-06 20:04:05 Tais-Air.fritz.box pip_accel[29835] INFO Executing command: pip install --download=/Users/tailee/.pip-accel/sources --find-links=file:///Users/tailee/.pip-accel/sources --no-index --no-clean --build-directory=/var/folders/d5/xn6dnnw53z12v5rzw4pdtf9h0000gn/T/pip-accel-build-dir-5ixouJ -e git+https://github.com/ixc/django-fluent-pages.git@371c9711a3d26f967a9838766e32616d6b23a8b3#egg=django-fluent-pages
2016-06-06 20:04:05 Tais-Air.fritz.box pip.commands.install[29835] INFO Ignoring indexes: https://ic:[email protected]/ic/dev/+simple/
2016-06-06 20:04:05 Tais-Air.fritz.box pip.req.req_set[29835] INFO Obtaining django-fluent-pages from git+https://github.com/ixc/django-fluent-pages.git@371c9711a3d26f967a9838766e32616d6b23a8b3#egg=django-fluent-pages
2016-06-06 20:04:05 Tais-Air.fritz.box pip.vcs.git[29835] INFO Cloning https://github.com/ixc/django-fluent-pages.git (to 371c9711a3d26f967a9838766e32616d6b23a8b3) to /var/folders/d5/xn6dnnw53z12v5rzw4pdtf9h0000gn/T/pip-iL66xP-export
2016-06-06 20:04:11 Tais-Air.fritz.box pip.vcs.git[29835] WARNING Could not find a tag or branch '371c9711a3d26f967a9838766e32616d6b23a8b3', assuming commit.
2016-06-06 20:04:15 Tais-Air.fritz.box pip.utils[29835] INFO Complete output from command python setup.py egg_info:
2016-06-06 20:04:15 Tais-Air.fritz.box pip.utils[29835] INFO 
Installed /Users/tailee/.pip-accel/eggs/setuptools_scm-1.11.0-py2.7.egg
Traceback (most recent call last):
  File "<string>", line 20, in <module>
  File "/Users/tailee/.virtualenvs/test-pip-accel/src/django-fluent-pages/setup.py", line 97, in <module>
    'Topic :: Software Development :: Libraries :: Python Modules',
  File "/Users/tailee/.pyenv/versions/2.7.10/lib/python2.7/distutils/core.py", line 111, in setup
    _setup_distribution = dist = klass(attrs)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/setuptools/dist.py", line 272, in __init__
    _Distribution.__init__(self,attrs)
  File "/Users/tailee/.pyenv/versions/2.7.10/lib/python2.7/distutils/dist.py", line 287, in __init__
    self.finalize_options()
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/setuptools/dist.py", line 327, in finalize_options
    ep.load()(self, ep.name, value)
  File "build/bdist.macosx-10.10-x86_64/egg/setuptools_scm/integration.py", line 19, in version_keyword
  File "build/bdist.macosx-10.10-x86_64/egg/setuptools_scm/__init__.py", line 104, in get_version
  File "build/bdist.macosx-10.10-x86_64/egg/setuptools_scm/__init__.py", line 82, in _do_parse
LookupError: setuptools-scm was unable to detect version for '/Users/tailee/.virtualenvs/test-pip-accel/src/django-fluent-pages'.

Make sure you're either building from a fully intact git repository or PyPI tarballs. Most other sources (such as GitHub's tarballs, a git checkout without the .git folder) don't contain the necessary metadata and will not work.

For example, if you're using pip, instead of https://github.com/user/proj/archive/master.zip use git+https://github.com/user/proj.git#egg=proj

----------------------------------------
2016-06-06 20:04:15 Tais-Air.fritz.box pip_accel.cli[29835] ERROR Caught unhandled exception!
Traceback (most recent call last):
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/cli.py", line 57, in main
    accelerator.install_from_arguments(arguments)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/__init__.py", line 237, in install_from_arguments
    requirements = self.get_requirements(arguments, use_wheels=self.arguments_allow_wheels(arguments))
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/__init__.py", line 297, in get_requirements
    return self.unpack_source_dists(arguments, use_wheels=use_wheels)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/__init__.py", line 393, in unpack_source_dists
    requirements = self.get_pip_requirement_set(arguments, use_remote_index=False, use_wheels=use_wheels)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/__init__.py", line 497, in get_pip_requirement_set
    requirement_set = command.run(opts, args)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/commands/install.py", line 294, in run
    requirement_set.prepare_files(finder)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/req/req_set.py", line 334, in prepare_files
    functools.partial(self._prepare_file, finder))
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/req/req_set.py", line 321, in _walk_req_to_install
    more_reqs = handler(req_to_install)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/req/req_set.py", line 435, in _prepare_file
    abstract_dist.prep_for_dist()
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/req/req_set.py", line 123, in prep_for_dist
    self.req_to_install.run_egg_info()
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/__init__.py", line 728, in run_egg_info_wrapper
    return original_method(self, *args, **kw)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/req/req_install.py", line 410, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/utils/__init__.py", line 733, in call_subprocess
    % (command_desc, proc.returncode, cwd))
InstallationError: Command "python setup.py egg_info" failed with error code 1 in /Users/tailee/.virtualenvs/test-pip-accel/src/django-fluent-pages

Now do it again with more verbose output, showing that pip-accel is checking out from the repo in a temp directory to the src directory (which is why the git repository is not available to setuptools_scm):

(test-pip-accel) ~ ❯❯❯ pip-accel install -v -e 'git+https://github.com/ixc/django-fluent-pages.git@371c9711a3d26f967a9838766e32616d6b23a8b3#egg=django-fluent-pages'          ⏎ master ✭ ✚ ✖ ◼
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel.caches[29904] DEBUG Importing cache backend: pip_accel.caches.s3
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel.caches[29904] DEBUG Importing cache backend: pip_accel.caches.local
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel.caches[29904] DEBUG Initialized 2 cache backends: LocalCacheBackend and S3CacheBackend
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel.deps[29904] DEBUG Loading configuration from /Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/deps/debian.ini ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel.deps[29904] DEBUG Checking if configuration is supported: test -e /etc/debian_version
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel.deps[29904] DEBUG Command failed, assuming configuration doesn't apply ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG Cleaned up 0 broken symbolic links from source index in 0 seconds.
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] INFO Unpacking distribution(s) ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] INFO Executing command: pip install --download=/Users/tailee/.pip-accel/sources --find-links=file:///Users/tailee/.pip-accel/sources --no-index --no-clean --build-directory=/var/folders/d5/xn6dnnw53z12v5rzw4pdtf9h0000gn/T/pip-accel-build-dir-5qcDoB -v -e git+https://github.com/ixc/django-fluent-pages.git@371c9711a3d26f967a9838766e32616d6b23a8b3#egg=django-fluent-pages
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting use_wheel by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting build_options by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting global_options by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting install_options by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting download_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() refusing to set ignore_installed=True (attribute has override) ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting build_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting build_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() setting build_dir='/var/folders/d5/xn6dnnw53z12v5rzw4pdtf9h0000gn/T/pip-accel-build-dir-5qcDoB' by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting src_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() setting src_dir='/Users/tailee/.virtualenvs/test-pip-accel/src' by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting install_options by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting use_user_site by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting target_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting global_options by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting index_url by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting extra_index_urls by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting no_index by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip.commands.install[29904] INFO Ignoring indexes: https://ic:[email protected]/ic/dev/+simple/
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting download_cache by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting cache_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting cache_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting retries by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting trusted_hosts by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting cert by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting cert by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting client_cert by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting timeout by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting timeout by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting proxy by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting no_input by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting find_links by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting format_control by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting allow_external by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting allow_unverified by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting allow_all_external by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting trusted_hosts by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting pre by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting process_dependency_links by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting no_clean by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting cache_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting format_control by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting cache_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting cache_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting build_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting src_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting download_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting upgrade by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting as_egg by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting ignore_installed from overrides ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting ignore_dependencies by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting force_reinstall by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting use_user_site by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting compile by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting isolated_mode by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting constraints by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting editables by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting default_vcs by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting isolated_mode by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting requirements by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting editables by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting download_dir by deferring attribute access ..
2016-06-06 20:04:21 Tais-Air.fritz.box pip.req.req_set[29904] INFO Obtaining django-fluent-pages from git+https://github.com/ixc/django-fluent-pages.git@371c9711a3d26f967a9838766e32616d6b23a8b3#egg=django-fluent-pages
2016-06-06 20:04:21 Tais-Air.fritz.box pip.vcs.git[29904] INFO Cloning https://github.com/ixc/django-fluent-pages.git (to 371c9711a3d26f967a9838766e32616d6b23a8b3) to /var/folders/d5/xn6dnnw53z12v5rzw4pdtf9h0000gn/T/pip-n13MEs-export
2016-06-06 20:04:21 Tais-Air.fritz.box pip.utils[29904] DEBUG Running command git clone -q https://github.com/ixc/django-fluent-pages.git /var/folders/d5/xn6dnnw53z12v5rzw4pdtf9h0000gn/T/pip-n13MEs-export
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG Running command git show-ref
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG c1a87e8b8e07f555ef35d68ece83fd0ed0a96be0 refs/heads/master
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG c1a87e8b8e07f555ef35d68ece83fd0ed0a96be0 refs/remotes/origin/HEAD
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 47de414bb3fc3d46cb38aab378875d588384cb2f refs/remotes/origin/django17
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG c1a87e8b8e07f555ef35d68ece83fd0ed0a96be0 refs/remotes/origin/master
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 371c9711a3d26f967a9838766e32616d6b23a8b3 refs/remotes/origin/reversion_support
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG a20910003bbdb1893610d3b66501c69807f4fb04 refs/remotes/origin/reversion_support_strict
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 58e350e38b94e3aedaa44b1a179eca28546d552a refs/remotes/origin/truncate-db-table
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 03c237482525331780417c94dc0c964a34cdfd1b refs/remotes/origin/v0.8.x
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG a0ea43238602f4fbc58e6a55755580827f7ed3bc refs/tags/0.9
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 2453f7e3be805a3e276a58efbeda448ef54b45ba refs/tags/v0.8.0
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 862741331164f322e6a59542c25e77d06a9465a5 refs/tags/v0.8.1
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG fdc0030571165b0f6720e7ecf64607279db7e948 refs/tags/v0.8.2
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 4a2b8157b2ecdf1b44c624564426681363a66fc6 refs/tags/v0.8.3
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG fe00c03fb36f7cee565e2f7566bcdf98c3899886 refs/tags/v0.8.4
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 31d4aa108fa12b371c5b0bafad06cbe73a6a3ab0 refs/tags/v0.8.5
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 116b2ca1a35315b59527f2595a782f13a4cef70d refs/tags/v0.8.6
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG a0ea43238602f4fbc58e6a55755580827f7ed3bc refs/tags/v0.9
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 9438f4eab059349b8609b9b2d253833e85a892c1 refs/tags/v0.9b1
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG e4f3278f517e077e31035ab5fda47ee715af283e refs/tags/v0.9b2
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 196efb2ab8d072ded96718f5a8dc1a80f211bc56 refs/tags/v0.9b3
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG b45d9259b2ed16adc91815ecd91ae413df5be163 refs/tags/v0.9b4
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG a66be05cc5362e7096e96c128463e1f2a746339b refs/tags/v0.9c1
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 1261ca10c46fd1f3585308cae8039dd43c876477 refs/tags/v1.0
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG c5e524589e431d2850b77be8fab8a6a5fac05b43 refs/tags/v1.0b1
2016-06-06 20:04:25 Tais-Air.fritz.box pip.vcs.git[29904] WARNING Could not find a tag or branch '371c9711a3d26f967a9838766e32616d6b23a8b3', assuming commit.
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG Running command git rev-parse HEAD
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG c1a87e8b8e07f555ef35d68ece83fd0ed0a96be0
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG Running command git checkout -q 371c9711a3d26f967a9838766e32616d6b23a8b3
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG Running command git checkout-index -a -f --prefix /Users/tailee/.virtualenvs/test-pip-accel/src/django-fluent-pages/
2016-06-06 20:04:25 Tais-Air.fritz.box pip_accel[29904] DEBUG Creating symbolic link: /Users/tailee/.virtualenvs/test-pip-accel/src/django-fluent-pages/.eggs -> /Users/tailee/.pip-accel/eggs
2016-06-06 20:04:25 Tais-Air.fritz.box pip.req.req_install[29904] DEBUG Running setup.py (path:/Users/tailee/.virtualenvs/test-pip-accel/src/django-fluent-pages/setup.py) egg_info for package django-fluent-pages
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG Running command python setup.py egg_info
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG Traceback (most recent call last):
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG   File "<string>", line 20, in <module>
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG   File "/Users/tailee/.virtualenvs/test-pip-accel/src/django-fluent-pages/setup.py", line 97, in <module>
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG     'Topic :: Software Development :: Libraries :: Python Modules',
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG   File "/Users/tailee/.pyenv/versions/2.7.10/lib/python2.7/distutils/core.py", line 111, in setup
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG     _setup_distribution = dist = klass(attrs)
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG   File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/setuptools/dist.py", line 272, in __init__
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG     _Distribution.__init__(self,attrs)
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG   File "/Users/tailee/.pyenv/versions/2.7.10/lib/python2.7/distutils/dist.py", line 287, in __init__
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG     self.finalize_options()
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG   File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/setuptools/dist.py", line 327, in finalize_options
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG     ep.load()(self, ep.name, value)
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG   File "build/bdist.macosx-10.10-x86_64/egg/setuptools_scm/integration.py", line 19, in version_keyword
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG   File "build/bdist.macosx-10.10-x86_64/egg/setuptools_scm/__init__.py", line 104, in get_version
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG   File "build/bdist.macosx-10.10-x86_64/egg/setuptools_scm/__init__.py", line 82, in _do_parse
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG LookupError: setuptools-scm was unable to detect version for '/Users/tailee/.virtualenvs/test-pip-accel/src/django-fluent-pages'.
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG Make sure you're either building from a fully intact git repository or PyPI tarballs. Most other sources (such as GitHub's tarballs, a git checkout without the .git folder) don't contain the necessary metadata and will not work.
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG 
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] DEBUG For example, if you're using pip, instead of https://github.com/user/proj/archive/master.zip use git+https://github.com/user/proj.git#egg=proj
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] INFO Complete output from command python setup.py egg_info:
2016-06-06 20:04:25 Tais-Air.fritz.box pip.utils[29904] INFO Traceback (most recent call last):
  File "<string>", line 20, in <module>
  File "/Users/tailee/.virtualenvs/test-pip-accel/src/django-fluent-pages/setup.py", line 97, in <module>
    'Topic :: Software Development :: Libraries :: Python Modules',
  File "/Users/tailee/.pyenv/versions/2.7.10/lib/python2.7/distutils/core.py", line 111, in setup
    _setup_distribution = dist = klass(attrs)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/setuptools/dist.py", line 272, in __init__
    _Distribution.__init__(self,attrs)
  File "/Users/tailee/.pyenv/versions/2.7.10/lib/python2.7/distutils/dist.py", line 287, in __init__
    self.finalize_options()
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/setuptools/dist.py", line 327, in finalize_options
    ep.load()(self, ep.name, value)
  File "build/bdist.macosx-10.10-x86_64/egg/setuptools_scm/integration.py", line 19, in version_keyword
  File "build/bdist.macosx-10.10-x86_64/egg/setuptools_scm/__init__.py", line 104, in get_version
  File "build/bdist.macosx-10.10-x86_64/egg/setuptools_scm/__init__.py", line 82, in _do_parse
LookupError: setuptools-scm was unable to detect version for '/Users/tailee/.virtualenvs/test-pip-accel/src/django-fluent-pages'.

Make sure you're either building from a fully intact git repository or PyPI tarballs. Most other sources (such as GitHub's tarballs, a git checkout without the .git folder) don't contain the necessary metadata and will not work.

For example, if you're using pip, instead of https://github.com/user/proj/archive/master.zip use git+https://github.com/user/proj.git#egg=proj

----------------------------------------
2016-06-06 20:04:25 Tais-Air.fritz.box pip_accel[29904] DEBUG AttributeOverrides() getting no_clean by deferring attribute access ..
2016-06-06 20:04:25 Tais-Air.fritz.box pip_accel.cli[29904] ERROR Caught unhandled exception!
Traceback (most recent call last):
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/cli.py", line 57, in main
    accelerator.install_from_arguments(arguments)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/__init__.py", line 237, in install_from_arguments
    requirements = self.get_requirements(arguments, use_wheels=self.arguments_allow_wheels(arguments))
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/__init__.py", line 297, in get_requirements
    return self.unpack_source_dists(arguments, use_wheels=use_wheels)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/__init__.py", line 393, in unpack_source_dists
    requirements = self.get_pip_requirement_set(arguments, use_remote_index=False, use_wheels=use_wheels)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/__init__.py", line 497, in get_pip_requirement_set
    requirement_set = command.run(opts, args)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/commands/install.py", line 294, in run
    requirement_set.prepare_files(finder)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/req/req_set.py", line 334, in prepare_files
    functools.partial(self._prepare_file, finder))
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/req/req_set.py", line 321, in _walk_req_to_install
    more_reqs = handler(req_to_install)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/req/req_set.py", line 435, in _prepare_file
    abstract_dist.prep_for_dist()
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/req/req_set.py", line 123, in prep_for_dist
    self.req_to_install.run_egg_info()
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip_accel/__init__.py", line 728, in run_egg_info_wrapper
    return original_method(self, *args, **kw)
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/req/req_install.py", line 410, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/Users/tailee/.virtualenvs/test-pip-accel/lib/python2.7/site-packages/pip/utils/__init__.py", line 733, in call_subprocess
    % (command_desc, proc.returncode, cwd))
InstallationError: Command "python setup.py egg_info" failed with error code 1 in /Users/tailee/.virtualenvs/test-pip-accel/src/django-fluent-pages

Finally make a fresh venv and install the same editable package with pip:

(test-pip-accel) ~ ❯❯❯ mkvirtualenv test-pip                                                                                                                                  ⏎ master ✭ ✚ ✖ ◼
New python executable in /Users/tailee/.virtualenvs/test-pip/bin/python2.7
Also creating executable in /Users/tailee/.virtualenvs/test-pip/bin/python
Please make sure you remove any previous custom paths from your /Users/tailee/.pydistutils.cfg file.
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /Users/tailee/.virtualenvs/test-pip/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/tailee/.virtualenvs/test-pip/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/tailee/.virtualenvs/test-pip/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/tailee/.virtualenvs/test-pip/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/tailee/.virtualenvs/test-pip/bin/get_env_details
(test-pip) ~ ❯❯❯ pip install -e 'git+https://github.com/ixc/django-fluent-pages.git@371c9711a3d26f967a9838766e32616d6b23a8b3#egg=django-fluent-pages'D                          master ✭ ✚ ✖ ◼
Obtaining django-fluent-pagesD from git+https://github.com/ixc/django-fluent-pages.git@371c9711a3d26f967a9838766e32616d6b23a8b3#egg=django-fluent-pagesD
  Cloning https://github.com/ixc/django-fluent-pages.git (to 371c9711a3d26f967a9838766e32616d6b23a8b3) to ./.virtualenvs/test-pip/src/django-fluent-pagesd
  Could not find a tag or branch '371c9711a3d26f967a9838766e32616d6b23a8b3', assuming commit.
  Running setup.py (path:/Users/tailee/.virtualenvs/test-pip/src/django-fluent-pagesd/setup.py) egg_info for package django-fluent-pagesD produced metadata for project name django-fluent-pages. Fix your #egg=django-fluent-pagesD fragments.
Collecting django-fluent-utils>=1.1.4 (from django-fluent-pages)
  Downloading https://devpi.ixcsandbox.com/root/pypi/+f/001/43b37c1989597/django_fluent_utils-1.2.3-py2.py3-none-any.whl
Collecting django-mptt>=0.5.5 (from django-fluent-pages)
  Downloading https://devpi.ixcsandbox.com/root/pypi/+f/2a4/904f4c3bc85cf/django_mptt-0.8.4-py2.py3-none-any.whl (218kB)
    100% |████████████████████████████████| 225kB 10.5MB/s 
Collecting django-parler>=1.4 (from django-fluent-pages)
  Downloading https://devpi.ixcsandbox.com/root/pypi/+f/ae4/7c68e65a03874/django_parler-1.6.3-py2.py3-none-any.whl (79kB)
    100% |████████████████████████████████| 81kB 9.2MB/s 
Collecting django-polymorphic>=0.7 (from django-fluent-pages)
  Downloading https://devpi.ixcsandbox.com/root/pypi/+f/c22/09d69526872da/django_polymorphic-0.9.2-py2.py3-none-any.whl (46kB)
    100% |████████████████████████████████| 51kB 14.9MB/s 
Collecting django-polymorphic-tree>=1.1 (from django-fluent-pages)
  Downloading https://devpi.ixcsandbox.com/root/pypi/+f/b78/169ebd41be3bb/django_polymorphic_tree-1.2.5-py2.py3-none-any.whl (155kB)
    100% |████████████████████████████████| 163kB 11.9MB/s 
Collecting django-tag-parser>=2.1 (from django-fluent-pages)
  Downloading https://devpi.ixcsandbox.com/root/pypi/+f/e2a/b499a1955606c/django_tag_parser-2.1-py2.py3-none-any.whl
Collecting future>=0.12.2 (from django-fluent-pages)
Collecting six>=1.5.2 (from django-fluent-pages)
  Downloading https://devpi.ixcsandbox.com/root/pypi/+f/3ab/558cf5d4f7a72/six-1.10.0-py2.py3-none-any.whl
Collecting Django>=1.8 (from django-mptt>=0.5.5->django-fluent-pages)
  Downloading https://devpi.ixcsandbox.com/root/pypi/+f/522/4b6f237a9e46a/Django-1.9.7-py2.py3-none-any.whl (6.6MB)
    100% |████████████████████████████████| 6.6MB 9.7MB/s 
Requirement already satisfied (use --upgrade to upgrade): setuptools in ./.virtualenvs/test-pip/lib/python2.7/site-packages (from django-polymorphic>=0.7->django-fluent-pages)
Installing collected packages: django-fluent-utils, Django, django-mptt, django-parler, django-polymorphic, django-tag-parser, future, django-polymorphic-tree, six, django-fluent-pages
  Running setup.py develop for django-fluent-pages
Successfully installed Django-1.9.7 django-fluent-pages django-fluent-utils-1.2.3 django-mptt-0.8.4 django-parler-1.6.3 django-polymorphic-0.9.2 django-polymorphic-tree-1.2.5 django-tag-parser-2.1 future-0.15.2 six-1.10.0

When you pip install -e you end up with an editable repository and working copy in src. When you pip-accel install -e you end up with only an editable working copy in src, which besides breaking setuptools_scm, makes it not much use if you actually want to edit it and commit changes back upstream.

I think pip-accel could just clone from the temp repository to src instead of checking out, if you don't want to just clone directly from the remote URL to src, and it should work?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants