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
Tables crashes python with a run time error #903
Comments
The message clearly states that you are using at runtime a version of the HDF5 library that is different form the one that you have used to build pytables. |
Thanks @avalenito. I did understand the message. However, I am not sure if tables is installing a version of hdf5 with version for 3.6.1 in the path for runtime library. Since everything works fine with the same set of packages (both for homebrew and pip) for earlier versions, I suspect something has changed in some install of the newer versions. Does pypi tables version 3.61, compiled with hdf5 1.12.0 version headers? If yes, a How do I check for path for the runtime used by tables? I could then try to find the offending libraries and the cause of the conflicting libraries. I noticed that when upgrading hdf5 using homebrew, homebrew installed a number of other packages--octave and its required packages. IIRC after the homebrew upgrades, pip upgrade of tables (---build_from_source) did not resolve the problem. |
@sunilshah my comment was referred to an installation of PyTables from sources.
if you refer to wheels I honestly don't remember, I should check, but I doubt.
Not sure to understand your reasoning, if you build form sources it is totally irrelevant how wheels on PyPI have been built. The source package is not tied to a specific HDF5 version.
This is very system dependent, on OS X you could try to use something like
Sorry I don't use homebrew but, yes, my guess is that you need to clean a little bit your environment. |
Perhaps homebrew's choice of different paths to support Apple Silicon may be playing a role here. I noticed that in setup.py, choice of prefix could be a problem.
Homebrew has standardized all installs on Apple Silicon for x86_64-Rosetta2 under Homebrew 3.0.0, Mike McQuaid, 05 February 2021 If my conjecture is true, all users who maintain both Rosetta2 and arm64 could have problems. |
xref #887 |
FWIW im not on apple silicon |
Which machine and OS are you using? Could you please attach output of Are you using pip to install pandas? |
macOS 11.2.3, the problem started occurring after i did |
That is exactly how I discovered the problem on my machine. Unfortunately, it has made my python code base brittle to brew / pandas upgrades. I have to resolve the problem or find a workaround to use of tables--it is only used for |
I just re-installed using |
Can you please attach output of What version of hdf5 is your brew install show? I have problem moving from hdf5 version 1.12.0_4 to 1.12.1 for x86_64 (Rosetta 2) tables version 3.6.1. I also have same problems for tables version 3.6.2 (dev) for native M1 (arm64). |
1.12.1 Did you try the |
@jbrockmendel thanks. I see that you are current on homebrew and Xcode but using an older version of Mac OS (I am on 11.5.1). What version of python3 are you running? I am on 3.9.6. What about pip3 version?
I do have an Intel based Mac (though on OS 11.5.1). It fails the same way as on M1. pip3 version 21.2.4 does not take the option --no-binary without an argument. |
The command I suggested does have an argument "tables". Note that "tables" shows up twice in the command above.
Yes, that is the idea. IIUC the wheel was built using an older hdf5 than what is now installed on our machines, so we specifically need to not use that wheel.
I don't think this is correct. |
I also verified that brew hdf5 installation functions in other applications that use it-- octave 6.3.0 Now I suspect that the problem is NOT with hdf5 install under homebrew but with pytables install / run-time. Between documentation of pytables install and assumptions in the code base, the problem with pytables keeps recurring over the last seven+ months across multiple OS updates, MAC hardware, brew updates and python3.9 versions. When I get version information in python on the Intel Mac,
it reports hdf5 version 1.12.0! Yet, homebrew only shows hdf5 version 1.12.1. Where does pytbales pickup hdf5 version 1.12.0? How do I debug this? |
I did work around the use of pytables in my code base by using |
Tables does crash under Apple M1 in native mode. It has the same error message about library mismatch. It can not be fixed by compiling from source. |
@sunilshah what is the status of this issue. |
The problem remains at run time on M1 in native mode. Each issue mentioned above in this thread, including failure to build from source properly are still present.
I do not use python environments on M1. So it may be a significant effort to create "clean environment". As I mentioned earlier, I no longer use I was able to build from source and run By the way, another problem with multiple versions of run-time libraries is in issue also in (scipy/scipy#15050 (comment)) The kernel panic was due to a timeout bug in Mac OS (fixed in 12.0.1) but the performance problem was related to multiple BLAS libraries and their tuning for M1. |
As mentioned in #887 (comment) c-blosc at the moment does not support M1 native so it is impossible to have PyTables as well on that platform.
If you have some experience to share please fee free to submit a PR to improve the PyTables documentation, it would be very appreciated. |
On my M1, c-blosc version 1.21.1 is installed and running under Rosetta2 and in native mode using homebrew. It was installed on October 15, 2021. |
Sorry, you are right #930 (comment) |
Sorry, my experience is only as a user of PyTables through pandas |
I am running python 3.9.6 and tables version 3.6.2.
Python was installed using homebrew on macOS 11.4 on M1 under Rosetta2.
hdf5 1.12.1. was installed using homebrew.
This runs fine with hdf5 version 1.12.0_4 and tables version 3.6.1, under both Rosetta2 and in native mode. I am not sure if this is an issue with hdf5 install under homebrew or with tables.
The text was updated successfully, but these errors were encountered: