paylogic / pip-accel

pip-accel: Accelerator for pip, the Python package manager
https://pypi.python.org/pypi/pip-accel
MIT License
308 stars 35 forks source link

The file (path-to-package-name).zip exists. (i)gnore, (w)ipe, (b)ackup #51

Closed travcunn closed 9 years ago

travcunn commented 9 years ago

I use pip-accel with automated testing, however when I updated the Python package today, my automated tests cannot use it. I get the following prompt when trying to install packages:

The file /var/cache/pip-accel/sources/(package-name).zip exists. (i)gnore, (w)ipe, (b)ackup

I also get this prompt when running in 'silent mode' specified by the '-q' option. Is there a way to automatically ignore this message?

xolox commented 9 years ago

Hi Travis and thanks for the feedback.

Sorry for breaking your automated tests, I released a new version of pip-accel two days ago which switches from pip 1.4.x to pip 6.x. This was a fairly big update that necessitated changes to the internal logic (e.g. switching from pip install --no-install to pip install --download) which most likely explains this change in behavior.

Looking through the pip source code I see that it is possible for the prompt you describe to occur, but I can't seem to be able to reproduce it in the pip-accel test suite nor in my manual testing. Do you know how you can get the prompt to appear? (i.e. a specific requirement set, installing from an unpacked source distribution directory, anything more specific than "I'm using pip-accel to install packages" really).

xolox commented 9 years ago

I just released pip-accel 0.26.1 which uses the --exists-action=w option to avoid the interactive prompt (which as you pointed out is rather unhelpful because pip-accel is popular in build automation). If the user provides the --exists-action=... option then pip-accel should respect the user's choice and not override it with --exists-action=w, so the "w" for "wipe" (which really means "overwrite" AFAICT) is only the default (and maybe not the best default as I hinted in the comments of a7b451dec20e97513580a0550436ac0b8a9a5f80).

Can you update to pip-accel 0.26.1 to test whether it resolves the issue you reported? Thanks!

travcunn commented 9 years ago

It looks like the prompt appears when pip attempts installing packages that originate from a remote Git repo. Run this twice (the prompt appears the second time):

pip-accel install git+https://github.com/kissmetrics/KISSmetrics.git#egg=KISSmetrics

Let me try the new version.....

xolox commented 9 years ago

Thanks for the command line, I can reproduce the issue now. Strangely enough pip ignores the --exists-action=w command line option that pip-accel 0.26.1 provides (contradicting pip's documentation). I'll see if I can find another way to get pip to behave :-).

xolox commented 9 years ago

pip-accel 0.26. 2 (just released) uses $PIP_EXISTS_ACTION instead of --exists-action which does seem to work, please try it out.

travcunn commented 9 years ago

Seems to work correctly now. You rock!

xolox commented 9 years ago

I'm going to close this issue now because the problem is resolved (to the best of my knowledge). Thanks for the feedback Travis!