By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,965 Members | 1,757 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,965 IT Pros & Developers. It's quick & easy.

Custom Execution from Python

P: n/a
Hello all,

I have a shared object executable viz. *cable* which I execute as follows :

$ ansyscust71 -custom cable -p ANSYSRF

**ansyscust71 is a shell script and is a part of a software called ANSYS**
Now, I have generated a python module using a *fortran-python interface
generator called F2PY* using the same *make rules* which were used to make
*cable* when not using F2PY

I got a Python extension module named *cable_f2py* again.

From the python environment when I tried to execute *cable_f2py* ( thisis
python module due to F2PY), I got a segmentation error just like how I would
get this error when I execute *cable* as follows when not using F2PY:

$ ./cable
Segmentation Fault

However, when I execute it as follows, it works

$ansyscust71 -custom cable -p ANSYSRF --> This is required for succesful
execution
Now, I dont understand how I can mimic the above way of execution from within
Python to execute *cable_f2py* which as I mentioned earlier is the resultof
making and linking all the same libraries which were used while making and
linking cable

I am really confused

Can someone help me ??
Thanks in advance,

Best Regards,
Satish


--
SATISH KUMAR CHIMAKURTHI
Graduate Teaching Assistant
CFD GROUP
UNIVERSITY OF KENTUCKY
LEXINGTON
KENTUCKY - 40508
Email: sk*****@engr.uky.edu
Mobile: 859-312-8425

Vice-President
American Institute Of Aeronautics and Astronautics
Student Chapter
University Of Kentucky

Jul 18 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
satish wrote:

I have a shared object executable viz. *cable* which I execute as follows :
$ ansyscust71 -custom cable -p ANSYSRF

**ansyscust71 is a shell script and is a part of a software called ANSYS**

Now, I have generated a python module using a *fortran-python interface
generator called F2PY* using the same *make rules* which were used to make
*cable* when not using F2PY

I got a Python extension module named *cable_f2py* again.

From the python environment when I tried to execute *cable_f2py* ( this is
python module due to F2PY), I got a segmentation error just like how I would
get this error when I execute *cable* as follows when not using F2PY:

$ ./cable
Segmentation Fault

However, when I execute it as follows, it works

$ansyscust71 -custom cable -p ANSYSRF --> This is required for succesful
execution

Now, I dont understand how I can mimic the above way of execution from within
Python to execute *cable_f2py* which as I mentioned earlier is the result of
making and linking all the same libraries which were used while making and
linking cable

I am really confused


So are we, as most of what you describe above seems to have very little
relationship with Python. You might need to think through your problem
and attempt to explain it in a different way for us to help you. For
example, you don't show *how* you try to execute it "from the python
environment". Have you got some code to show us?

Anyway, as a bit of a long shot, are you aware of the os.system() function,
and the various other methods of running external executables? If
you are already using one of those, you might want to show us how you
use it.

-Peter
Jul 18 '05 #2

P: n/a
Hello peter,

Thanks for responding. I will think through my problem again and present it in
the best possible form shortly. However, in a nutshell, what I need to dois
*EXECUTE A PYTHON MODULE WITH A SHELL SCRIPT PROVIDED BY AN EXTERNAL PROGRAM,
FROM WITHIN PYTHON*

The name of the script is *ansyscust71* which is a shell script provided by a
Finite Element software called ANSYS. ANSYS provides a number of
customization features, as a part of which, it allows users to write fortran
codes using ANSYS's internal functions/methods and execute the corresponding
*shared modules* using the following command.

$ ansyscust71 -custom cable -p ANSYSRF

ANSYS EXECUTES SUCCESFULLY
However, initially when I did'nt know of the above command, I executed
*cable* as follows :

$ ./cable

ANSYS EXECUTED
Segmentation Fault

Later I did use the right command as I mentioned above, which made my module
execute succesfully.

*cable* is a shared module which I got after *making* my fortran code viz.
*ansys.F90* by linking it with *ANSYS libraries* using a *Makefile* thatI
wrote for the purpose
After this, I intended to do the same thing from python. I wrapped my fortran
code *ansys.F90* using F2PY(Fortran to Python Interface Generator), with
which many of the python users are familiar. I got a python module named
*cable_f2py* succesfully.
Sample *ansys.F90*

SUBROUTINE ansys()
cmd='START_OF_ANSYS'
ncommand=len_trim(cmd)
where=mainan(ncommand,cmd)
END SUBROUTINE ansys

This is just a part of *ansys.F90* which initializes ANSYS upon execution

From python I execute the module as follows :
import cable_f2py %cable is a python module generated by F2PY
cable_f2py.ansys()

ANSYS EXECUTED
Segmentation fault

$

ANSYS gets initialized succesfully. However, I get a segmentation fault at the
end and PYTHON skips the execution from that point and transfers control to
the command prompt.

If you remember, the same thing happened when I tried to execute *cable* as
*./cable* initially when I did'nt use F2PY to generate the Python module
Precisely, this is my problem.

Does this help you to help me ??
Thanks for your time and patience in advance,

Regards,
Satish
On Friday 19 September 2003 08:04 pm, Peter Hansen wrote: satish wrote:
I have a shared object executable viz. *cable* which I execute as
follows : $ ansyscust71 -custom cable -p ANSYSRF

**ansyscust71 is a shell script and is a part of a software called
ANSYS**

Now, I have generated a python module using a *fortran-python interface
generator called F2PY* using the same *make rules* which were used to
make *cable* when not using F2PY

I got a Python extension module named *cable_f2py* again.

From the python environment when I tried to execute *cable_f2py* ( this
is python module due to F2PY), I got a segmentation error just like how I
would get this error when I execute *cable* as follows when not using
F2PY:

$ ./cable
Segmentation Fault

However, when I execute it as follows, it works

$ansyscust71 -custom cable -p ANSYSRF --> This is required for succesful
execution

Now, I dont understand how I can mimic the above way of execution from
within Python to execute *cable_f2py* which as I mentioned earlier isthe
result of making and linking all the same libraries which were used while
making and linking cable

I am really confused


So are we, as most of what you describe above seems to have very little
relationship with Python. You might need to think through your problem
and attempt to explain it in a different way for us to help you. For
example, you don't show *how* you try to execute it "from the python
environment". Have you got some code to show us?

Anyway, as a bit of a long shot, are you aware of the os.system() function,
and the various other methods of running external executables? If
you are already using one of those, you might want to show us how you
use it.

-Peter


--
SATISH KUMAR CHIMAKURTHI
Graduate Teaching Assistant
CFD GROUP
UNIVERSITY OF KENTUCKY
LEXINGTON
KENTUCKY - 40508
Email: sk*****@engr.uky.edu
Mobile: 859-312-8425

Vice-President
American Institute Of Aeronautics and Astronautics
Student Chapter
University Of Kentucky

Jul 18 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.