Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > global name 'sqrt' is not defined

Reply
Thread Tools

global name 'sqrt' is not defined

 
 
Nick Matzke
Guest
Posts: n/a
 
      02-05-2009
Hi all,

So, I can run this in the ipython shell just fine:

===========
a = ["12", "15", "16", "38.2"]
dim = int(sqrt(size(a)))

dim
>2

===========


But if I move these commands to a function in another file, it freaks out:


=================================
a = distances_matrix.split('\t')
from LR_run_functions_v2 import make_half_square_array
d = make_half_square_array(a)

>

---------------------------------------------------------------------------
NameError Traceback (most recent call last)

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

/bioinformatics/phylocom/_scripts/LR_run_functions_v2.py in
make_half_square_array(linear_version_of_square_ar ray)
1548
1549 a = linear_version_of_square_array
-> 1550 dim = int(sqrt(size(a)))
1551
1552

NameError: global name 'sqrt' is not defined

=================================




Here's the function in LR_run_functions_v2.py

==========================
def make_half_square_array(linear_version_of_square_ar ray):

a = linear_version_of_square_array
dim = int(sqrt(size(a)))
==========================



Any ideas? If I do something like "import math" in the subfunction,
then the error changes to "global name 'math' is not defined".

Thanks!
Nick







--
================================================== ==
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:
http://ib.berkeley.edu/people/lab_detail.php?lab=54
http://fisher.berkeley.edu/cteg/hlab.html
Dept. personal page:
http://ib.berkeley.edu/people/studen...php?person=370
Lab personal page: http://fisher.berkeley.edu/cteg/members/matzke.html
Lab phone: 510-643-6299
Dept. fax: 510-643-6264
Cell phone: 510-301-0179
Email:

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.
http://chem.tufts.edu/AnswersInScien...ityofWrong.htm
================================================== ==
 
Reply With Quote
 
 
 
 
Rob
Guest
Posts: n/a
 
      02-09-2009
> Any ideas? If I do something like "import math" in the subfunction,
> then the error changes to "global name 'math' is not defined".


Presumably ipython does an import so you need to import it yourself
something like:

from math import sqrt

at the top of your source file. I don't know why math would not be
defined, it's built in -- probably a scoping logic problem in your code.
Put the form/import statement at the top of your module file (as is
usually done), not inside a function or other block.

Rob

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
User-defined exception: "global name 'TestRunError' is not defined" jmike@alum.mit.edu Python 1 07-10-2008 12:37 PM
global name not defined NetKev Python 5 05-24-2006 03:34 AM
#if (defined(__STDC__) && !defined(NO_PROTOTYPE)) || defined(__cplusplus) Oodini C Programming 1 09-27-2005 07:58 PM
Re: global name not defined :$ Fredrik Lundh Python 0 06-20-2005 01:09 PM
global name "Result" is not defined Elmar Haneke Python 1 03-30-2005 01:31 PM



Advertisments