global name 'sqrt' is not defined

Nick Matzke matzke at
Thu Feb 5 21:28:13 CET 2009

Scott David Daniels wrote:
> M.-A. Lemburg wrote:
>> On 2009-02-05 10:08, Nick Matzke wrote:
>>> ..., I can run this in the ipython shell just fine:
>>> a = ["12", "15", "16", "38.2"]
>>> dim = int(sqrt(size(a)))
>>> ...But if I move these commands to a function in another file, it 
>>> freaks out:
>> You need to add:
>> from math import sqrt
> or:
>     from cmath import sqrt
> or:
>     from numpy import sqrt

The weird thing is, when I do this, I still get the error:

nick at mws2[phylocom]|27> a = ["12", "15", "16", "38.2"]
nick at mws2[phylocom]|28> from LR_run_functions_v2 import 
nick at mws2[phylocom]|24> d = make_half_square_array(a)
NameError                                 Traceback (most recent call last)

/bioinformatics/phylocom/<ipython console> in <module>()

/bioinformatics/phylocom/_scripts/ in 
    1548         from numpy import sqrt
    1549         a = linear_version_of_square_array
-> 1550         dim = int(sqrt(size(a)))

NameError: global name 'sqrt' is not defined
nick at mws2[phylocom]|25>

Is there some other place I should put the import command?  I.e.:
1. In the main script/ipython command line

2. In the called function, i.e. make_half_square_array() in

3. At the top of, outside of the individual 

Thanks...sorry for the noob questions!

> Each with their own, slightly different, meaning.
> Hence the reason many of us prefer to import the module
> and reference the function as a module attribute.
> Note that _many_ (especially older) package documents describe
> their code without the module name.  I believe that such behavior
> is because, when working to produce prose about a package, it
> feels too much like useless redundancy when describing each function
> or class as "".
> --Scott David Daniels
> Scott.Daniels at Acm.Org
> -- 

Nicholas J. Matzke
Ph.D. student, Graduate Student Researcher
Huelsenbeck Lab
Center for Theoretical Evolutionary Genomics
4151 VLSB (Valley Life Sciences Building)
Department of Integrative Biology
University of California, Berkeley

Lab websites:
Dept. personal page:
Lab personal page:
Lab phone: 510-643-6299
Dept. fax: 510-643-6264
Cell phone: 510-301-0179
Email: matzke at

Mailing address:
Department of Integrative Biology
3060 VLSB #3140
Berkeley, CA 94720-3140

"[W]hen people thought the earth was flat, they were wrong. When people 
thought the earth was spherical, they were wrong. But if you think that 
thinking the earth is spherical is just as wrong as thinking the earth 
is flat, then your view is wronger than both of them put together."

Isaac Asimov (1989). "The Relativity of Wrong." The Skeptical Inquirer, 
14(1), 35-44. Fall 1989.

More information about the Python-list mailing list