-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
matplotlib installation from source and numpy incompatibility #10135
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
Comments
Seems more like a pip problem to me. It downloads NumPy 1.14.0rc1 and installs it temporarily as a build requirement, builds Matplotlib against that, then actually installs NumPy 1.13.3 for normal use. |
This works fine if you |
Thank you for the advice @QuLogic , indeed it solved the problem on debian. The problem still persist on the docker image which is used to build binary manylinux1 wheels (https://github.com/pypa/manylinux). Here I've used 32bit docker image with Python 3.4 and pip 9.0. As the docker image runs some ancient OS (CentOS 5), with freetype 2.2, I had to manually compile newer freetype library, required by matplotlib. See below:
|
Pass |
@QuLogic thanks again for suggestion where to look for source of this problem. First of all I've realized that recent stable version of matplotlib (2.1.1) doesn't have manylinux1 wheels for 32bit architecture, looking at: https://pypi.org/project/matplotlib/2.1.1/#files . They are however present for Windows. Is there any reason behind it ? This is forcing the compilation of matplotlib package from sources for 32bit, even when using modern pip (i.e. 9.X) and modern linux distro (i.e. debian 9), see below - it gives same problem as before.
Contents of the log file with standard output can be found here: As you mentioned below matplotlib during compilation gets numpy 1.14rc and compiles itself against it, but later installs as dependency numpy 1.13. |
@QuLogic could you please take a look at the comment here:
Do you think that there is some hope that on matplotlib side this problem can be handled somehow ? |
There is something wrong with the wheel-builder on 32bit manylinux (it may just be that the tests do not pass due to bit-issues) and no one has asked about it yet.
No, I think this should go to pypa. The simplest work around is to just install |
@tacaswell thank you for advice - indeed prior installation of numpy fixes the problem:
|
Hi,
On Mon, Jan 1, 2018 at 10:54 PM, Thomas A Caswell ***@***.***> wrote:
First of all I've realized that recent stable version of matplotlib (2.1.1) doesn't have manylinux1 wheels for 32bit architecture, looking at: https://pypi.org/project/matplotlib/2.1.1/#files . They are however present for Windows. Is there any reason behind it ?
There is something wrong with the wheel-builder on 32bit manylinux (it may just be that the tests do not pass due to bit-issues) and no one has asked about it yet.
I don't think it's the builder - I think it's the matplotlib code /
tests - there are two problems:
1) A segfault : #6620
2) Image comparison errors - presumably because the tests are tuned to
64-bit freetype : #6604
I'm guessing the segfault does indicate a real code problem somewhere.
The image comparison errors are a constant source of pain for unusual
builds ...
|
Bug report
Bug summary
After installing matplotlib 2.1.1 via pip (using source package , .tar.gz) it fails to run due to incompatibility with numpy API.
Code for reproduction
I've used docker on debian 8 to test it with default python (2.7) and default pip (1.5):
Matplotlib version
print(matplotlib.get_backend())
): aggThe problem was triggered by some other package with which I had trouble to produce wheels. See discussion here: pytrip/pytrip#419 (comment)
The text was updated successfully, but these errors were encountered: