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

Dependencies during installation #769

Closed
ronaldoussoren opened this issue Jan 16, 2013 · 7 comments
Closed

Dependencies during installation #769

ronaldoussoren opened this issue Jan 16, 2013 · 7 comments
Labels
auto-locked Outdated issues that have been locked by automation C: setup_requires For when someone uses setup_requires

Comments

@ronaldoussoren
Copy link

The primary usecase for this issue is PyObjC, not sure if other packages will run into this.

PyObjC has a umbrella package "pyobjc" that is only used for installation and depends on the actual packages, "pyobjc-core", "pyobjc-framework-...".

The pyobjc-framework-... packages all have a setup_requires for pyobjc-core because they use a header file from pyobjc-core's egg-info when compiling extensions.

When I install PyObjC using "pip install pyobjc" the "pyobjc-core" package gets build multiple times. The reason for this appears to be that pip first installs all packages into a temporary location that is not on sys.path and then moves it to the right location.

Would it be possible to add the temporary location to sys.path while installing/building the dependencies? That would avoid a lot of compile-time overhead for me.

@hookdump
Copy link

hookdump commented Aug 2, 2013

A bit late, but I'd like to leave a tip:

pip install -U pyobjc-core
pip install -U pyobjc

This should prevent the crazy repeated compilations.

@ronaldoussoren
Copy link
Author

I know, and that's what I've documented in PyObjC's documentation. It should be possible to avoid the recompilations without using this workaround, although I haven't looked at pip's sources yet to see how hard this would be.

@dstufft dstufft modified the milestone: 6.0 Dec 18, 2014
@pushrax
Copy link

pushrax commented Mar 23, 2015

Is there anything blocking this or is it just a matter of doing it?

@Ivoz
Copy link
Contributor

Ivoz commented Mar 23, 2015

Probably a matter of implementing a build-time-dependency cache, and also working out whether pip and & setuptools need to or should be cooperating in implementing that functionality. Otherwise, just a matter of doing it

@ronaldoussoren
Copy link
Author

FYI, I've restructured PyObjC's packages to avoid this problem. This is not yet in the current release, but will be in a future release.

@RonnyPfannschmidt
Copy link
Contributor

currently pip is not hooking into build time dependencies (i.e. setup_requires)
there are peps for preparing that and its going to take a while before this is properly doable

@dstufft
Copy link
Member

dstufft commented Mar 24, 2017

Closing this as a duplicate of #3691, which is the mechanism we will use to support this feature.

@dstufft dstufft closed this as completed Mar 24, 2017
@lock lock bot added the auto-locked Outdated issues that have been locked by automation label Jun 3, 2019
@lock lock bot locked as resolved and limited conversation to collaborators Jun 3, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
auto-locked Outdated issues that have been locked by automation C: setup_requires For when someone uses setup_requires
Projects
None yet
Development

No branches or pull requests

7 participants