-
Notifications
You must be signed in to change notification settings - Fork 168
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
buildout3 rc3 problem #606
Comments
What is suspicious here, is that the tracebacks show a mixture of Python 3.8 ( You tried this with Python 3.9, right? Can you add I think I saw a similar report in the issues a while ago, but cannot immediately find it. We could change the default of this option to true. I have this in my |
Can you try to run it with
In order to avoid old cache ? (I tried running it on my machine and it did work - even with my eggs cache directory. |
Hey, first thanks for your help. I guess i found the Problem. in buildout we have this _get_matching_dist_in_location function. As i see it checks if there is the proper version in the location. Important: It checks for the platform too. So buildout grabs on my mac: SQLAlchemy-1.3.24-py3.9-macosx-11.5-x86_64.egg but my real platform is (Pdb++) get_supported_platform() so there is no match. And it breaks. What i have done now ist this. I added the platform=None on the Environment. So the platform check returns True and all works. buildout.py |
I have tried to reproduce your problem (not sure I understood properly). This is what I did.
Got the following eggs:
@goschtl, what did I miss ? |
Hm, @gotcha can you gimme a pip list i want to see what version of setuptools and pip you have after you created the virtualenv with python3.9. Maybe i have Problems with my python setup i use pyenv to have a bunch of python versions on my machine? Christian |
Before
With
With
|
Hm it still does not work here.
You see when i use the Environment with platform = None i get back sqlalchemy. When i use the platform then i get an empty list back. This causes the problem then. I have no idea what todo... Christian |
@goschtl Did you try without a shared egg cache, iow, by specifying Any idea why you get Could you paste the full output of Do you still have a mix of You have homework 😉 |
Hey i found the thing. In a brew installed python it works without Problems. But in general i use pyenv to manage my local python installations. The platform information are a bit different between the pyenv and f.e. brew python installation. In pyenv i get this:
in brew python i get this: When i set this platform explicit via this ENV-Variable it works in pyenv python too like a charm: export _PYTHON_HOST_PLATFORM="macosx-11-x86_64" I am not sure what it means for buildout itself. But maybe it makes sense to adopt that change here too: 1858 def _get_matching_dist_in_location(dist, location):
|
Two questions:
|
I do believe that this is similar to pypa/setuptools#2514 (comment): a macos + setuptools problem. |
I ran into this error today. I'm not sure I have much to add yet on understanding the cause. But, I also have Python installed using pyenv. I tried reinstalling Python with pyenv (well, actually, I made a new installation of Python 3.9.16, which is slightly newer than the Python 3.9.13 I had before). With the new Python, the error went away. So, I am guessing this has something to do with a mismatch between the version of MacOS that was used to build Python with pyenv, and the version that is currently installed (i.e. after upgrading MacOS you need to rebuild Python) |
@davisagli wrote:
I think you are right. I upgraded from MacOS 12 to 13.5. Rerunning a Plone buildout failed on
It failed at Now in my Plone 6.0 core development buildout after I rerun buildout, I have 25 eggs with |
TLDR: if building a wheel fails, you may need to clear your buildout download cache. I now have a problem in a buildout that tries to install zope.container 4.10 on Python 3.8. Running buildout with high verbosity, after a while I get this:
That last remark might be a wrong conclusion in either buildout or pip: But why does it try to build from source, instead of using a pre-built wheel that it can download from PyPI? When you look at the pypi simple page and do some prepping, you get these Mac OSX specific wheels:
In my case I need the
So the wheel should be compatible, and buildout should recognise this, but buildout of 4.10 fails. I could use one of the two working solutions as workaround, but still: why does buildout 4.10 fail? Okay, I try with a very simple buildout, and do not use the shared buildout caches:
Hey, it works! What is the influence of the caches? My shared cache only contains When I remove the egg, and copy the tarball to the download cache, it still works: the wheel is in the download cache. Remove both the egg and the wheel, keep only the tarball: it breaks. Of course in principle it should be possible to build from source as well, but this does not always work, and I may need to install more development libraries or set more environment variables. So after upgrading Mac to a new version:
Still, probably something could be improved in buildout. If it has a cached source tarball, it should still check PyPI for an available wheel, and prefer that one. |
Thanks for the detailed analysis ! |
This issue got on my radar as well since the release of Mac OS X Sonoma, where I have been battling with a Plone 5.2 buildout setup with zc.buildout 3 that worked perfectly fine before, but started throwing both exceptions in October/November. (one or the other, depending on what I tried to fix with clearing/isolating caches etc). That's:
This first happened on an M1 mac. And when I needed to travel and I wanted to update on my Intel Macbook it happened again. That really surprised me as in the last 3 years I've only had issues on the new apple Arm architecture. The solution that worked for me right away was doing an This is a very nasty issue to debug and I was initially surprised it took me this long to figure this out (and also find these reports) with all the experience and issues I have seen in the last 3 years when I switched to Arm based Macs. I think because the errors are so vague and generic: I asked @mauritsvanrees about these tracebacks and allthough he worked on it, he even didn't remember that he saw these tracebacks not longer than 3 months ago..... Sorry: forgot a part, discussed this with Maurits this week: the other 'solution' or missing step here is that pyenv built pythons on a previous OS X version have the wrong PLATFORM stored in the installation. So either you force the platform by overriding in the environment variable, or you rebuild the pyenv Python and when installing packages it will use the correct current platform it was built with. Then apparently a 12.X built python can and should use 14.X created wheels/eggs and that's not a problem? Or am I playing with fire by overriding it with the environment variable? |
Hi,
i try to install sqlalchemy via zc.recipe.egg. Buildout3 rc3.
This is my config:
I get this error on first run:
and this on 2'nd
any idea?
The text was updated successfully, but these errors were encountered: