weird str error

Peter Otten __peter__ at web.de
Thu Sep 17 11:01:24 CEST 2009


daved170 wrote:

> On Sep 15, 6:29 pm, Peter Otten <__pete... at web.de> wrote:
>> daved170 wrote:
>> > Hi everybody,
>> > I'm using SPE 0.8.3.c as my python editor.
>> > I'm using thestr() function and i got a very odd error.
>>
>> > I'm trying to do this: printstr("HI")
>> > When i'm writing this line in the shell it prints: HI
>> > When it's in my code (it's the only line) i'm getting the following
>> > error:
>>
>> > file "c:\Python25\lib\local.py" line 242, instr
>> > return format("%.12g",val)
>>
>> > file "c:\Python25\lib\local.py" line 145, in format
>> > formatted = percent % value
>> > TypeError, float argument required
>>
>> > any idea? It's worked for the entire day and unfortunately when i
>> > started my testing it raised this erroe/
>>
>> local.py or locale.py? If the latter you are probably doing a star
>> import:
>>
>> from locale import *
>>
>> This will replace the builtinstr() with locale.str() which indeed
>> requires a float:
>>
>> >>>str("HI")
>> 'HI'
>> >>> from locale import *
>> >>>str("HI")
>>
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> File "/usr/lib/python2.5/locale.py", line 244, instr
>> return format("%.12g", val)
>> File "/usr/lib/python2.5/locale.py", line 147, in format
>> formatted = percent % value
>> TypeError: float argument required
>>
>> As a general rule use the standard import
>>
>> import locale
>>
>> and then invoke the module's functions with an explicit prefix:
>>
>> locale.setlocale(...)
>>
>> It's a bit more to type, but it will save you a lot of trouble.
>>
>> Peter
>>
>> PS: Whenstr() is the builtinstr("HI") converts a string into a string
>> which does not make much sense.- Hide quoted text -
>>
>> - Show quoted text -
> 
> Hi Peter,
> Thanks for your answer.
> I'll clearify myself. I'm using QString cause I have a GUI app. I want
> to convert it to python string. It works well for several month and
> suddenly two days ago it didn't. I'm not using localE at all (i'm not
> importing it).
> After your answer I tried it but it still didn't work.

You mean you don't have any star imports in the module causing error?

> Any other ideas?

Run your script from the command line (not your editor). Then give the 
complete traceback.

Grep through the libraries you use for 'from locale' and 'import locale' to 
identify the one that uses the locale module. You can identify modules used 
by your script by running

python -v script.py

Aside: if you use a version control system and check in frequently it gets 
easier to identify a modification that introduced an error. Highly 
recommended.

Peter




More information about the Python-list mailing list