[Ifeffit] Scripting - Python

Andrew Korinda a-korinda at northwestern.edu
Thu Jul 14 22:08:28 CDT 2011


Ya, I can go back and do that, just glad to have a viable lead. I'll
get back to everyone next week about how it goes but this sounds
promising.

Andy K.

On Thu, Jul 14, 2011 at 10:03 PM, Matt Newville
<newville at cars.uchicago.edu> wrote:
> Hi Andrew,
>
> Ah, I believe the problem is due to using 64-bit version of Python.
> That is, the ifeffit_12.dll *was* found, but it couldn't be loaded
> because it is built for 32-bit.   I was testing with a 32-bit Python
> on a Win7 64-bit machine...
>
> I'm pretty sure the ifeffit_12.dll would have to be rebuilt to work
> with Enthought's EPD 7.1-1 (64-bit).  That might be possible, but I
> haven't tried doing this, and can't guarantee it will happen quickly.
>  That dll would also need to be kept separately from the rest of the
> ifeffit/bin, as Athena, Artemis, etc are all built for 32-bit systems.
>
> Is using a 32-bit Python a viable alternative?
> Sorry for the trouble,
>
> --Matt
>
>
> On Thu, Jul 14, 2011 at 9:43 PM, Andrew Korinda
> <a-korinda at northwestern.edu> wrote:
>> So I went through and double checked the use_ifeffit, no change. I
>> then entered the bin path directly and tried again, again with the
>> same results. Following your code, I just have one difference when I
>> import Ifeffit:
>> "Forcing DISTUTILS_USE_SDK=1"
>> Do I need to install a version of Visual Studio?
>>
>> The full text from the command shell is attached to spare others
>> following this including an output of my paths.
>>
>> Andy K.
>>
>> On Thu, Jul 14, 2011 at 12:50 PM, Matt Newville
>> <newville at cars.uchicago.edu> wrote:
>>> Hi Andrew,
>>>
>>> Just as a follow-up, loading the Ifeffit library from python worked
>>> for me on a separate Win7 machine (64bit).  I even had Ifeffit
>>> installed to the non-default location. With Ifeffit installed to
>>> C:\apps\Ifeffit, I edited C:\apps\Ifeffit\bin\use_ifeffit.bat to read
>>>
>>>   @echo off
>>>   SET IFEFFIT_DIR=C:\apps\Ifeffit\
>>>   SET IFEFFIT_BIN=C:\apps\Ifeffit\bin
>>>   SET PATH=%PATH%;%IFEFFIT_BIN%
>>>   SET PGPLOT_DIR=%IFEFFIT_BIN%
>>>   SET PGPLOT_DEV=/GW
>>>
>>> Then from a command prompt:
>>>    C:\>C:\apps\Ifeffit\bin\use_ifeffit
>>>    C:\>python
>>>    Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32
>>> bit (Intel)] on win32
>>>    Type "help", "copyright", "credits" or "license" for more information.
>>>    >>> import Ifeffit
>>>    >>> x  = Ifeffit.Ifeffit()
>>>    >>> x.ifeffit('show $&build')
>>>     $&build        = 1.2.11c Copyright (c) 2008 Matt Newville, Univ of Chicago
>>>
>>> Does that work for you?  If not, can you send a more complete report
>>> of your environmental variables?
>>>
>>> Sorry for the trouble,
>>>
>>> --Matt
>>>
>>> On Thu, Jul 14, 2011 at 9:58 AM, Andrew Korinda
>>> <a-korinda at northwestern.edu> wrote:
>>>> Thanks Matt. That new binary was a great help. The install appears to
>>>> have gone fine. I made the appropriate path changes in
>>>> use_ifeffit.bat, ifeffit_config.py and ifeffit.py to reflect where I
>>>> have installed Ifeffit. I noticed this when I was trying to debug an
>>>> import error I get when I call ifeffit but this didn't solve the
>>>> problem. The error I am getting is: ('failed to load ifeffit library
>>>> ', 'C:\\Program Files (x86)\\Ifeffit\\bin\\ifeffit_12.dll') which is
>>>> fatal. It's from line 125 of ifeffit.py. I've double check and the dll
>>>> is there so I'm not sure why it is failing.
>>>>
>>>> I saw Joel.Brugger had the same issue on his Mac but I didn't see an
>>>> email about that being resolved. Matt or anyone have another
>>>> suggestion where I can look to debug this?
>>>>
>>>> Andy K.
>>>>
>>>> On Wed, Jul 13, 2011 at 2:53 PM, Matt Newville
>>>> <newville at cars.uchicago.edu> wrote:
>>>>> Hi Andrew,
>>>>>
>>>>> Sorry for not keeping these more up-to-date.  I posted windows
>>>>> installers for Python 2.6 and Python 2.7 (sorry, no Python 3 support
>>>>> yet) at
>>>>>   http://cars.uchicago.edu/~ifeffit/src/PythonWrapper/
>>>>>
>>>>> I'll update the links on the wiki.
>>>>>
>>>>> Note that to use these well (especially for plotting fonts and colors
>>>>> to work), you may have to run C:\Program
>>>>> Files\Ifeffit\bin\use_ifeffit.bat, or otherwise set the environmental
>>>>> variables given in that file.
>>>>>
>>>>> Cheers,
>>>>>
>>>>> --Matt
>>>>>
>>>>>
>>>>> On Wed, Jul 13, 2011 at 10:41 AM, Andrew Korinda
>>>>> <a-korinda at northwestern.edu> wrote:
>>>>>> After a reprieve from XAS work, I'm back at it with a new laptop. In
>>>>>> rebuilding the Ifeffit python package I realized I did not properly
>>>>>> compile all the instructions which would explain why I wasn't getting
>>>>>> things to return to the python shell such as echo messages. I am
>>>>>> currently trying to properly install the Ifeffit wrapper from within
>>>>>> ifeffit-1.2.11c.tar.gz onto Windows 7 and Python 2.7.2. Of course this
>>>>>> has required some tweaks but when I get to "gcc.exe -mno-cygwin
>>>>>> -shared -s build" the install crashes. I believe this has to do with
>>>>>> site_install.py being writing for redhat and I'm not sure how to
>>>>>> modify the directories for windows.
>>>>>>
>>>>>> Is there a way around this? I realize I could go back and install
>>>>>> Python 2.5 and run Ifeffit-1.2.win32-py2.5.exe but that does mean
>>>>>> going back and reinstalling every package (numpy, scipy, matplotlib,
>>>>>> etc.) Is there maybe a way to rework Ifeffit-1.2.win32-py2.5.exe so it
>>>>>> can be used on a machine with Python 2.7.2?
>>>>>>
>>>>>> Andy Korinda
>>>>>>
>>>>>> On Mon, Nov 8, 2010 at 12:36 AM, Andrew Korinda
>>>>>> <a-korinda at northwestern.edu> wrote:
>>>>>>> Thanks for the help. Sorry it took so long to report back but I can only do
>>>>>>> must of my work on this on weekends. The corrected code worked great and I'm
>>>>>>> moving forward again. No message was given when the code wasn't working.
>>>>>>>
>>>>>>> Andy Korinda
>>>>>>>
>>>>>>> On Nov 1, 2010 1:55 PM, "Matt Newville" <newville at cars.uchicago.edu> wrote:
>>>>>>>
>>>>>>> Hi Andrew,
>>>>>>>
>>>>>>> On Mon, Nov 1, 2010 at 12:01 PM, Andrew Korinda
>>>>>>> <a-korinda at northwestern.edu> wrote:
>>>>>>>> I'm looking t...
>>>>>>>
>>>>>>> This is almost certainly due to space in the filename, and is really
>>>>>>> more of a problem with the fortran than python (or perl for that
>>>>>>> matter).  That is, with a space in the file name, you should
>>>>>>> explicitly use
>>>>>>>    read_data(file=...., group=...)
>>>>>>>
>>>>>>> This should work better::
>>>>>>>    import Ifeffit
>>>>>>>    iff = Ifeffit.Ifeffit()
>>>>>>>
>>>>>>>    ret = iff.ifeffit("read_data(file=C:\Program
>>>>>>> Files\Ifeffit\examples\Ifeffit\data\cu.xmu, group=c)")
>>>>>>>
>>>>>>> If it doesn't, let use know.
>>>>>>>
>>>>>>>> >From this experience I have some questions:
>>>>>>>>
>>>>>>>> ~First does anyone have some debugging tips for ...
>>>>>>>
>>>>>>> There should have been a printed message that might have altered you
>>>>>>> that the file hadn't been read in correctly:
>>>>>>>   *** read_data: no file name given!
>>>>>>>
>>>>>>> was that message not given?
>>>>>>>
>>>>>>>> ~Secondly, Does anyone have any example Python scripts for Ifeffit
>>>>>>>> that they would like to shar...
>>>>>>>
>>>>>>> I sort of deliberately have left the base Ifeffit python module
>>>>>>> bare-bones.  It would certainly be possible to add more functionality
>>>>>>> to that, or distribute add-on packages.  It sort of depends what
>>>>>>> people would find desirable.
>>>>>>>
>>>>>>> I have many example scripts using Ifeffit + Python, mostly scripts,
>>>>>>> not documented, reliable code.  Of course, there is also sixpack.  I
>>>>>>> had some older GUIs as well.  Would it be helpful to add some small
>>>>>>> examples on a wiki page?
>>>>>>>
>>>>>>>> ~Finally, would I be better off coding in Perl and using Demeter?
>>>>>>>
>>>>>>> That's a difficult question.  The relative merits of Perl v Python are
>>>>>>> sort of a topic all on their own.  For what it's worth, I believe
>>>>>>> (far) more people have used Python than Perl, but several very notable
>>>>>>> Ifeffit programs are written in Perl ;).
>>>>>>>
>>>>>>> --Matt
>>>>>>>
>>>>>>> PS: The next version of Ifeffit will be in python.   Progress is slow,
>>>>>>> and when it will start to look like an EXAFS analysis program is a
>>>>>>> fair question.  It probably shouldn't sway your decision much.
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Ifeffit mailing list
>>>>>>> Ifeffit at millenia.cars.aps.anl.g...
>>>>>>
>>>>>> _______________________________________________
>>>>>> Ifeffit mailing list
>>>>>> Ifeffit at millenia.cars.aps.anl.gov
>>>>>> http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Ifeffit mailing list
>>>>> Ifeffit at millenia.cars.aps.anl.gov
>>>>> http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
>>>>>
>>>>
>>>> _______________________________________________
>>>> Ifeffit mailing list
>>>> Ifeffit at millenia.cars.aps.anl.gov
>>>> http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Ifeffit mailing list
>>> Ifeffit at millenia.cars.aps.anl.gov
>>> http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
>>>
>>
>> _______________________________________________
>> Ifeffit mailing list
>> Ifeffit at millenia.cars.aps.anl.gov
>> http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
>>
>>
>
> _______________________________________________
> Ifeffit mailing list
> Ifeffit at millenia.cars.aps.anl.gov
> http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
>




More information about the Ifeffit mailing list