[Numpy-discussion] Linux numpy 1.0.1 install failed - undefined symbol: pthread_join

Robert Kern robert.kern at gmail.com
Fri May 25 15:08:25 EDT 2007


Gong, Shawn (Contractor) wrote:
> Hi Robert,
> I have tried both suggestions and got the same error message when
> "import numpy"
> 
> Try #1) changed site.cfg to have only these 3 lines
> [atlas]
> library_dirs = /usr/local/lib/atlas
> libraries = lapack, f77blas, cblas, atlas
> 
> result: did not work
> 
> Try #2) changed site.cfg to have only these 3 lines
> [atlas]
> library_dirs = /home/sgong/dev/dist/lib/atlas
> libraries = lapack, f77blas, cblas, atlas
> 
>   copy the above 4 files onto /home/sgong/dev/dist/lib/atlas
>   /usr/local/lib/atlas/ has all 7 files: lapack, f77blas, cblas, atlas,
> ptcblas, ptf77blas, statlas
>   ranlib (in /home/sgong/dev/dist/lib/atlas)
> 
> result: did not work
> 
> the install screen capture "out" from Try #2 is attached for your
> reference. Note that both library_dirs = ['/usr/local/lib/atlas',
> '/home/sgong/dev/dist/lib/atlas'] are found.  
> But '/usr/local/lib/atlas' is ahead of '/home/sgong/dev/dist/lib/atlas'.
> 
> Is it a problem?

Okay, here is the full scoop:

* The multi-threaded ATLAS is always tried first. This doesn't work for you
since you compiled your Python without pthreads.

* The standard library directories (/usr/lib, /usr/local/lib, etc.) are tried
along with fairly standard ATLAS library directories, too (/usr/lib/atlas,
/usr/local/lib/atlas).

* Consequently, the multi-threaded libraries in /usr/local/lib/atlas are picked
up before the version that you want.

Here is how to override this (I think):

Set the environment variable PTATLAS=None and then run the build. E.g.

  $ export PTATLAS=None
  $ python setup.py build

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco



More information about the NumPy-Discussion mailing list