[Ifeffit] Scripting - Python

Matt Newville newville at cars.uchicago.edu
Thu Jul 14 22:03:47 CDT 2011


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
>
>




More information about the Ifeffit mailing list