|
From: Eric F. <ef...@ha...> - 2012-09-08 16:53:31
|
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 <jk...@uv...
> <mailto:jk...@uv...>> 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 <pau...@gm...
>> <mailto:pau...@gm...>> 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
>>> Mat...@li...
>>> <mailto:Mat...@li...>
>>> 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
>> Mat...@li...
>> <mailto:Mat...@li...>
>> 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
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
|