On 2012/09/08 3:50 AM, Jody Klymak wrote:
> Ack, OK, to answer my own question...
>
> Somehow ipython was caching the definition of jmkfigure, so changing the
> module in the jmkfigure.py file did not actually change the version
> ipython was using. Running a new version of ipython, it worked fine.

Jody,

This is one of the big differences between python and matlab: in matlab, 
if an m-file has changed within a session, the change is immediately 
effective. The python "import" statement is very different.  If a module 
has been imported, then a subsequent "import" of it does not re-read the 
file, even if it has changed. There is a "reload" builtin function that 
will re-read a file, but it is rarely used.  It reloads only the 
specified module, not modules that use it.  Ipython has a recursive 
dreload (for deep reload) function, but I don't use that, either; I just 
do what you did, start a new instance of ipython.

In ipython, the %run magic is useful for developing and modifying a 
single module or script at at time, making changes and testing without 
restarting ipython.

Eric

>
> Sorry for the chatter, and thanks for the pointers..
> Cheers,   Jody
>
> On Sep 8, 2012, at  6:18 AM, Jody Klymak <jkly...@uvic.ca
> <mailto:jkly...@uvic.ca>> wrote:
>
>> Hi all,
>>
>> Thats what I thought too:
>>
>> I have: jmkfigure.py:
>>
>> ===============
>> from pylab import *
>>
>> def jmkfigure():
>>     rc('figure',figsize=(3+3/8,8.5/2),dpi=96)
>>     rc('font',size=9);
>> ===========
>>
>> and test.py:
>>
>> =========
>> from pylab import *
>>
>> from jmkfigure import *
>>
>> jmkfigure()
>> figure(1)
>> plot([1,2,3]);
>>
>> show()
>> ==============
>>
>> >>> run test.py
>>
>> yields a traceback ending w/:
>>
>> ===========
>> Users/jklymak/teaching/Phy411/project/jmkfigure.py in jmkfigure()
>>       1 from pylab import *
>> ----> 2
>>       3 def jmkfigure():
>>       4     rc('figure',figsize=(3+3/8,8.5/2),dpi=96)
>>       5     rc('font',size=9);
>>
>> NameError: global name 'rc' is not defined
>> ========
>>
>> Same error if I just import "rc" from matplot lib....
>>
>> Is it some strange set up problem?  If I put the same def in test.py
>> it works fine...
>>
>> Thanks,  Jody
>>
>> On Sep 7, 2012, at  22:52 PM, Paul Tremblay <paulhtremb...@gmail.com
>> <mailto:paulhtremb...@gmail.com>> wrote:
>>
>>> in your jmkfile.py you should have
>>>
>>> from  pylab  import  *
>>>
>>> Paul
>>>
>>>
>>> On 9/8/12 12:45 AM, Jody Klymak wrote:
>>>> Hi All,
>>>>
>>>> Sorry to ask a dumb python newbie question, but the problem arose while 
>>>> reading the matplotlib documentation, and an hour or so on the internet 
>>>> didnt' help, so I felt it was fair-ish game to post here.
>>>>
>>>> Inhttp://matplotlib.sourceforge.net/examples/pylab_examples/customize_rc.html
>>>>   it says:
>>>> """
>>>> If you like to work interactively, and need to create different sets
>>>> of defaults for figures (eg one set of defaults for publication, one
>>>> set for interactive exploration), you may want to define some
>>>> functions in a custom module that set the defaults, eg
>>>>
>>>> def set_pub():
>>>>      rc('font', weight='bold')    # bold fonts are easier to see
>>>>
>>>> Then as you are working interactively, you just need to do
>>>>
>>>>>>> set_pub()
>>>> """
>>>>
>>>> Which I thought was great, because I'd like to have some presets for 
>>>> different journals.  However, saving the def into a file (jmkfigure.py) 
>>>> and calling
>>>>
>>>> from jmkfigure import *
>>>>
>>>> set_pub()
>>>>
>>>> yields the error: "NameError: global name 'rc' is not defined"
>>>>
>>>> I tried importing matplotlib and rc into jmkfigure.py, but to no avail.
>>>>
>>>> I appreciate this is a scoping issue with python, but I can't figure out 
>>>> how to set rc from within an external module.
>>>>
>>>> Thanks for any help,
>>>>
>>>> Cheers,   Jody
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Live Security Virtual Conference
>>> Exclusive live event will cover all the ways today's security and
>>> threat landscape has changed and how IT managers can respond.
>>> Discussions
>>> will include endpoint security, mobile security and the latest in
>>> malware
>>> threats.
>>> http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
>>> Matplotlib-users mailing list
>>> Matplotlib-users@lists.sourceforge.net
>>> <mailto:Matplotlib-users@lists.sourceforge.net>
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>> --
>> Jody Klymak
>> http://web.uvic.ca/~jklymak/
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Live Security Virtual Conference
>> Exclusive live event will cover all the ways today's security and
>> threat landscape has changed and how IT managers can respond. Discussions
>> will include endpoint security, mobile security and the latest in malware
>> threats.
>> http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users@lists.sourceforge.net
>> <mailto:Matplotlib-users@lists.sourceforge.net>
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
> --
> Jody Klymak
> http://web.uvic.ca/~jklymak/
>
>
>
>
>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to