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

setuptool's setup_requires sandboxing breaks Cython #1784

Closed
ghost opened this issue Jun 13, 2019 · 4 comments
Closed

setuptool's setup_requires sandboxing breaks Cython #1784

ghost opened this issue Jun 13, 2019 · 4 comments
Labels

Comments

@ghost
Copy link

ghost commented Jun 13, 2019

setuptool's setup_requires's easy_install sandboxing appears to break Cython/.pxd cimport targets by how it loads or unloads modules.

Sadly, build-system.requires is not a good alternative for Cython build deps specifically because using it for this can slow down metadata analysis incredibly, as I explained here: #1742 (comment) which is why setup_requires was also suggested to me as possibly better option here: https://discuss.python.org/t/support-for-build-and-run-time-dependencies/1513/61?u=jtt

The Cython ticket where the unfortunate easy_install interaction was observed is here: cython/cython#2730 (comment)

In overall this greatly affects my build time negatively which just adds up over a while, so it would be nice if there could be found some way to address this. I'd also be happy to migrate to some alternative to setup_requires, in fact right now I am using build-system.requires, but right now there doesn't really appear to be a good one for the reasons explained/referenced above which is why I'm hoping for a fix

@pradyunsg
Copy link
Member

This is blocked on #1742, since it does not make sense to improve upon deprecated functionality.

I say let's determine further action there and then come to this issue. (obviously defering to setuptools maintainers if they prefer some other approach)

@pganssle
Copy link
Member

We're probably not going to be making any improvements to easy_install, as we don't have the resources to maintain a parallel infrastructure for installation, and there's really no reason to do so, anyway.

I think that build-system.requires is the way to go here, and any problems with build speed need to be addressed in pip or PEP 517/518 (I also very much would like to see an option for incremental builds and build caching, for example).

@ghost
Copy link
Author

ghost commented Jun 14, 2019

@pganssle build-system.requires has the wrong semantics though, see in #1742 (comment) (and maybe it would also make more sense to discuss this over there, sorry for my slight tickets mess) - so I'm pretty sure it cannot be fixed with caching or anything in the implementation, although an entirely new option would of course be feasible

@jaraco
Copy link
Member

jaraco commented Oct 22, 2021

As mentioned above, we won't be investing effort in advancing easy-install-based functionality. Please see #2823 where that functionality is being removed.

@jaraco jaraco closed this as completed Oct 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants