Closed minrk closed 8 years ago
Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe
) and found it was in an excellent condition.
@ocefpaf I'm not sure what package is responsible, but I think I've narrowed it down to something conda is doing corrupting the .exe files produced by pip. I can pip install just fine and the commands work, but after conda packages them up, they are broken. Seems like a pretty severe bug in either conda or conda-build, I guess?
The failure is:
Fatal error in launcher: Unable to create process '"'
which I see when I RDC into the appveyor VM, but for some reason appveyor doesn't capture in the web view.
Fatal error in launcher: Unable to create process '"'
Time to call @msarahan :wink:
well, sadly, it's something of a bug between both conda and conda-build, and has taken patches to both to fix.
See more at https://github.com/conda/conda/pull/3224 and https://github.com/conda/conda-build/pull/1171
Long story short: If you build packages with conda-build >=1.21.11, they should have binary prefix replacement info in them. If you install these packages with conda >=4.2.3, that prefix should get fixed correctly.
Conda 4.2.3 has been tagged and should be available soon with conda update conda -c conda-canary
Great. I figured it out, but the issue seems unresolvable until conda starts working again.
I can pin 'pip < 7`, since 7.0 appears to be the version that introduced the change (over a year ago), but I cannot build on py35 because there was never a pip 6 package for py35.
My current plan is to hold off on updating any conda-forge packages until there's a working release of conda again.
Can you enlighten me on why installation with pip is desirable? The only one I know of right now is that for setuptools entry points on Mac and Linux, you get reasonable scripts that don't depend on .pth files or pkg_resources. Are there other reasons we should think about using pip more generally? Does it enable specific functionality here?
I hope "hold off on updating any conda-forge packages until there's a working release of conda again" means holding off on changing to pip installs, not more generally avoiding updates - otherwise I feel like I've underestimated the magnitude of this issue. I'm confused as to how it became such a large issue, when I don't think that these entry points with pip have worked with conda since pip 6 (apparently).
I hope "hold off on updating any conda-forge packages until there's a working release of conda again" means holding off on changing to pip installs, not more generally avoiding updates
Since I'm already using pip in several conda-forge packages, I did mean that I won't be updating any packages until conda starts working again. However, since I now realize using conda entrypoints should be a satisfactory workaround while waiting for the pip entrypoints to resume working.
Can you enlighten me on why installation with pip is desirable?
I believe this has been discussed here, but the gist is that it is the only way to:
The general goal is to ensure consistency of the behavior of the installed package. This is not accomplished if conda packages are built with raw distutils.
This PR now works, as long as the redundant conda-forge entrypoints are left in-place, instead of letting the pip entrypoints pass through.
@minrk please correct me if I am wrong:
From a packager point of view the use of pip
brings the advantage that we don't have to specify the entrypoints
manually. And we to get the --single-version-externally-managed
behavior for free even when setuptools
is not used.
In light of those two advantages I believe we should move to pip install --no-deps .
as soon as conda
can handle it correctly. Until then specifying the entrypoints
is not that big of a deal since we already have them there.
PS: @minrk do you want to merge this one or do you want to leave it open to wait for the new conda
?
@ocefpaf good summary. I've merged this one since it works now, and we can back off the duplicate entrypoints when conda is fixed.
@msarahan sorry for my tone, I was pretty frustrated trying to figure out the right thing to do on this one, but I think the situation is fine, now.
@minrk, no problem. I understand and share your frustration. I hope this all just works once conda >=4.2.3 is generally available.
Not for merge, yet.
Some debugging of Windows install not working, I'm guessing due to the wrong pip doing the installation.