Comments (11)
Hi Jesse and thanks for the feedback. I think this is actually a bug in Paver's setup.py
script (which is by the way the most non standard setup.py
script I've seen so far, and I've seen hundreds of them, even fixed some along the way):
peter@macbook> python setup.py bdist_dumb --format=tar
*** Problem with pavement:
/home/peter/tmp/2014-11-07/paver/pavement.py
In setting command options for Task: distutils.command.bdist_dumb,
option -d/--dist-dir for Task: distutils.command.bdist_dumb is already in use
by another task in the dependency chain.
However I did notice that the python setup.py bdist
command works fine and produces the desired result. There's something to argue for making pip-accel as robust as possible by falling back to that option. Nevertheless the command used by pip-accel is documented in the Python standard library and should Just Work (TM), that must be a bug.
from pip-accel.
This is definitely coming from the convoluted way that Paver insists on bootstrapping its own installation using itself. To be honest I really don't get what the point of that exercise is (except for showcasing creativity :-). I guess I can still compensate for this, but it does leave me with a bit of a bad taste in my mouth :-). On the other hand when pip-accel gets you 99% of the way there, it should try to support that last 1% as well, otherwise you can't use it or have to work around this yourself, also not nice. I'll get back to this after merging the S3 support that you are also waiting for ;-).
from pip-accel.
ah, that makes sense. Thanks for tracking this down @xolox
from pip-accel.
For anyone reading along, in case my previous comments sounded a bit harsh: I like installation procedures to be as declarative (introspectable and safe) as possible. The setup.py
script of Paver is the absolute opposite, it seems to be running hundreds to thousands of lines of code just in order to call distutils.setup()
or setuptools.setup()
... When I find these kinds of things I usually try to fix them but that assumes the project author(s) agree with the general sentiment that setup.py
scripts should be as declarative as possible. That's clearly not the case here so I assume there's no point in trying to convince anyone :-).
from pip-accel.
Hi Jesse,
I believe this is now fixed, can you try the latest version to confirm?
Thanks for the feedback!
from pip-accel.
Peter I'm now getting this. Is it what you expected?
My command is pip-accel install -r requirements.txt
where my requirements.txt file includes Paver==1.2.1
2014-11-24 15:57:07 precise64 pip_accel.bdist[1799] INFO Building Paver (1.2.1) binary distribution ..
2014-11-24 15:57:07 precise64 pip_accel.cli[1799] ERROR Caught unhandled exception!
Traceback (most recent call last):
File "/home/foo/src/pip-accel/pip_accel/cli.py", line 53, in main
accelerator.install_from_arguments(arguments)
File "/home/foo/src/pip-accel/pip_accel/__init__.py", line 180, in install_from_arguments
self.install_requirements(requirements, **kw)
File "/home/foo/src/pip-accel/pip_accel/__init__.py", line 365, in install_requirements
self.bdists.install_binary_dist(binary_distribution, **kw)
File "/home/foo/src/pip-accel/pip_accel/bdist.py", line 284, in install_binary_dist
for member, from_handle in members:
File "/home/foo/src/pip-accel/pip_accel/bdist.py", line 71, in get_binary_dist
raw_file = self.build_binary_dist(requirement)
File "/home/foo/src/pip-accel/pip_accel/bdist.py", line 156, in build_binary_dist
name=requirement.name, version=requirement.version)
NoBuildOutput: Build of Paver (1.2.1) did not produce a binary distribution archive!
Please check the build output because it will probably provide a hint about what went wrong.
Build output:
*** Problem with pavement:
/tmp/tmpyd0u3d/Paver/pavement.py
In setting command options for Task: distutils.command.bdist_dumb,
option -d/--dist-dir for Task: distutils.command.bdist_dumb is already in use
by another task in the dependency chain.
from pip-accel.
Hi Jesse,
No that output is not what I expected. It looks like you're still running pip-accel 0.18 while the bug fix relevant to this issue was included in pip-accel 0.19 (or I'm overlooking some dumb mistake on my side, but I checked and pip-accel 0.19 is available on PyPI ;-). Are you sure you upgraded to the latest version? For reference, I just tested this again and it works fine for me based on pip-accel 0.19. The output quoted below shows the new behavior in the line Build of paver (1.2.1) failed, falling back to alternative method ..
peter@macbook> pip-accel install paver==1.2.1
2014-11-27 21:56:04 pip_accel[3320] INFO Unpacking source distribution(s) ..
2014-11-27 21:56:04 pip_accel[3320] INFO Executing command: pip install --no-install --no-index --find-links=file:///home/peter/.pip-accel/sources --build-directory=/tmp/tmpMnHDMF paver==1.2.1
Ignoring indexes: https://pypi.python.org/simple/
Downloading/unpacking paver==1.2.1
Could not find a version that satisfies the requirement paver==1.2.1 (from versions: 1.2.3)
No distributions matching the version for paver==1.2.1
Storing complete log in /home/peter/.pip/pip.log
2014-11-27 21:56:04 pip_accel[3320] INFO We don't have all source distribution archives yet!
2014-11-27 21:56:04 pip_accel[3320] INFO Downloading missing source distribution(s) ..
2014-11-27 21:56:04 pip_accel[3320] INFO Executing command: pip install --no-install --download-cache=/home/peter/.pip/download-cache --find-links=file:///home/peter/.pip-accel/sources --build-directory=/tmp/tmpMnHDMF paver==1.2.1
Downloading/unpacking paver==1.2.1
Downloading Paver-1.2.1.tar.gz (305kB): 305kB downloaded
Storing download in cache at /home/peter/.pip/download-cache/https%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2FP%2FPaver%2FPaver-1.2.1.tar.gz
Running setup.py egg_info for package paver
Successfully downloaded paver
2014-11-27 21:56:05 pip_accel[3320] INFO Finished downloading source distribution(s) in 1.2 second.
2014-11-27 21:56:05 pip_accel[3320] INFO Installing from binary distributions ..
2014-11-27 21:56:06 pip_accel[3320] INFO Uninstalled previously installed package paver.
2014-11-27 21:56:06 pip_accel.caches.s3[3320] INFO Checking if distribution archive is available in S3 bucket: v7/paver:1.2.1:CPython-2.7.tar.gz
2014-11-27 21:56:06 pip_accel.bdist[3320] INFO Building paver (1.2.1) binary distribution ..
2014-11-27 21:56:06 pip_accel.bdist[3320] WARNING Build of paver (1.2.1) failed, falling back to alternative method ..
2014-11-27 21:56:06 pip_accel.bdist[3320] INFO Building paver (1.2.1) binary distribution ..
2014-11-27 21:56:06 pip_accel.bdist[3320] INFO Finished building paver (1.2.1) in 0.41 seconds.
2014-11-27 21:56:06 pip_accel[3320] INFO Finished installing 1 requirement in 1.05 second.
from pip-accel.
argh, no you're probably right - I probably had the wrong installed version. I'll have to try it again and let you know.
from pip-accel.
@jzoldak: The pip-accel test suite now includes a test to verify that paver==1.2.3
does not cause any issues so I'm pretty sure this issue has been resolved. Can you confirm?
from pip-accel.
Looks great! Thanks for implementing this.
👍
from pip-accel.
@jzoldak: Thanks for the confirmation!
from pip-accel.
Related Issues (20)
- pip-accel not updating package HOT 3
- Doesn't work with pip 7+ HOT 2
- Add option for terse logging. HOT 5
- Windows / Appveyor - same version of cached file - invalidated and built again HOT 5
- is_wheel fails when source_directory is None HOT 6
- Not able to use pip-accel both globally and inside a virtual environment HOT 4
- Support custom pip command HOT 7
- Upgrade to pip 8 HOT 4
- Disabling S3CacheBackend because it failed HOT 2
- pip-accel does not support running as a module HOT 6
- Is there any way to use pip-accel without installing to virtualenv?
- pip-accel is not compatible with `-e` editable installs of packages that use `setuptools_scm` HOT 2
- Why does `pip-accel` make an sdist (?) archive when I `pip-accel install -e .`? HOT 3
- pip-accel doesn't support the newest pip? HOT 4
- Not compatible with alternative install locations, e.g. `--user`? HOT 2
- [need advice] Do not cache development versions
- Failed to install some packages
- pip-accel should honor settings in pip.conf
- Is this project still alive? HOT 2
- Trying to install pip-accel, it insists on downgrading pip to 2.7. How can I get it to respect the current version, 21.1.2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pip-accel.