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

install with pip #5

Merged
merged 1 commit into from
Aug 15, 2016
Merged

install with pip #5

merged 1 commit into from
Aug 15, 2016

Conversation

minrk
Copy link
Member

@minrk minrk commented Aug 11, 2016

Not for merge, yet.

Some debugging of Windows install not working, I'm guessing due to the wrong pip doing the installation.

@conda-forge-linter
Copy link

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.

@minrk
Copy link
Member Author

minrk commented Aug 11, 2016

@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.

@ocefpaf
Copy link
Member

ocefpaf commented Aug 11, 2016

Fatal error in launcher: Unable to create process '"'

Time to call @msarahan 😉

@msarahan
Copy link
Member

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 conda/conda#3224 and conda/conda-build#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

@minrk
Copy link
Member Author

minrk commented Aug 13, 2016

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.

@msarahan
Copy link
Member

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).

use conda for entry points

because conda can't currently handle pip entry points

Maybe revert conda entry-points once pip support is fixed.
@minrk
Copy link
Member Author

minrk commented Aug 14, 2016

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:

  1. guarantee that setuptools is used, and
  2. setuptools doesn't make a mess

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.

@minrk minrk changed the title [WIP] install with pip install with pip Aug 14, 2016
@minrk
Copy link
Member Author

minrk commented Aug 14, 2016

This PR now works, as long as the redundant conda-forge entrypoints are left in-place, instead of letting the pip entrypoints pass through.

@ocefpaf
Copy link
Member

ocefpaf commented Aug 15, 2016

@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?

@minrk minrk merged commit fffafda into conda-forge:master Aug 15, 2016
@minrk
Copy link
Member Author

minrk commented Aug 15, 2016

@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 minrk deleted the pip branch August 15, 2016 12:18
@msarahan
Copy link
Member

@minrk, no problem. I understand and share your frustration. I hope this all just works once conda >=4.2.3 is generally available.

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

Successfully merging this pull request may close these issues.

4 participants