Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > running an existing script

Reply
Thread Tools

running an existing script

 
 
Adam Chapman
Guest
Posts: n/a
 
      06-21-2011
Hi,

I'm trying to put together a lot of pieces of source code in matlab,
java, perl and python.

Im an expert when it comes to matlab, but novice in all the others
listed above. However, I have integrated the java and perl code so
they can be called from matlab.

I know that there is a toolbox out there called Pymat but i think that
uses 32bit activex so rules my configuration out.

However I think I can hack in to the python command prompt from
matlab.

Basically I just want to run a single script from the python command
window. Once I know how to do that I can be off on my way to perform
the matlab interfacing.

there is an example of the command I need in the python prompt at
http://jboost.sourceforge.net/doc.html#cv .

however, I can't seem to run the python script by typing the command
on that link in the python prompt.

Can I please ask how to set the current duirectory in python?

the script I want to run is in a different directory to the one python
is installed to
 
Reply With Quote
 
 
 
 
Benjamin Kaplan
Guest
Posts: n/a
 
      06-21-2011
On Tue, Jun 21, 2011 at 10:45 AM, Adam Chapman
<(E-Mail Removed)> wrote:
> Hi,
>
> I'm trying to put together a lot of pieces of source code in matlab,
> java, perl and python.
>
> Im an expert when it comes to matlab, but novice in all the others
> listed above. However, I have integrated the java and perl code so
> they can be called from matlab.
>
> I know that there is a toolbox out there called Pymat but i think that
> uses 32bit activex so rules my configuration out.
>
> However I think I can hack in to the python command prompt from
> matlab.
>
> Basically I just want to run a single script from the python command
> window. Once I know how to do that I can be off on my way to perform
> the matlab interfacing.
>
> there is an example of the command I need in the python prompt at
> http://jboost.sourceforge.net/doc.html#cv .
>
> however, I can't seem to run the python script by typing the command
> on that link in the python prompt.
>


That command they show isn't run from a Python shell. It's run from
either a Unix shell (bash and friends) or a Windows command prompt
(cmd). If you want to run a script, you have to give the path to that
script. ./ means the current directory and .. is the parent directory
if you want to give relative paths, or you can just write out the
whole file path.

> Can I please ask how to set the current duirectory in python?
>


os.chdir changes the current directory, but you probably don't need to do that.

> the script I want to run is in a different directory to the one python
> is installed to
> --
> http://mail.python.org/mailman/listinfo/python-list
>

 
Reply With Quote
 
 
 
 
Ethan Furman
Guest
Posts: n/a
 
      06-21-2011
Adam Chapman wrote:
> Hi,


Howdy!

> I'm trying to put together a lot of pieces of source code in matlab,
> java, perl and python.


[snippety]

> Basically I just want to run a single script from the python command
> window. Once I know how to do that I can be off on my way to perform
> the matlab interfacing.
>
> there is an example of the command I need in the python prompt at
> http://jboost.sourceforge.net/doc.html#cv .


That looks like a shell prompt, not a Python prompt

> however, I can't seem to run the python script by typing the command
> on that link in the python prompt.
>
> Can I please ask how to set the current duirectory in python?


nfold.py is a python script -- you can't just type in the name once
inside python and have it work. It would require something like

--> import os
--> os.chdir('path/to/nfold.py') # don't include nfold.py
--> import nfold
--> import sys
--> sys.argv = ["--folds=5", "--data=spambase.data",
.... "--spec=spambase.spec", "--rounds=500", "--tree=ADD_ALL",
.... "--generate" ]
....
--> nfold.main() # assuming it has a main function that can be called
# in this manner

and that probably won't work. What you probably want to do is execute
the command "python /path/to/nfold.py --fold=5 ..." (include the
nfold.py this time ). I have no idea how to do that from Matlab.

Good luck!

~Ethan~
 
Reply With Quote
 
Ethan Furman
Guest
Posts: n/a
 
      06-21-2011
Adam Chapman wrote:
> Thanks Ethan
>
> No way could I have worked that out in my state of stress!
>
> For your second idea, would I need to type that into the python command
> line interface (the one that looks like a DOS window?


If you are actually in a python CLI, at the top of that screen does it
say something like

Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.

?

If yes, then what I wrote earlier should actually work (I downloaded
jBoost and looked at the nfold.py script). Here it is again:

--> import os
--> os.chdir('path/to/nfold.py') # don't include nfold.py
--> import nfold
--> import sys
--> sys.argv = ["nfold.py", "--folds=5", "--data=spambase.data",
.... "--spec=spambase.spec", "--rounds=500", "--tree=ADD_ALL",
.... "--generate" ]
....
--> nfold.main()

I fixed the sys.argv line from last time.

Good luck!

~Ethan~
 
Reply With Quote
 
Adam Chapman
Guest
Posts: n/a
 
      06-21-2011
On Jun 21, 8:00*pm, Ethan Furman <(E-Mail Removed)> wrote:
> Adam Chapman wrote:
> > Thanks Ethan

>
> > No way could I have worked that out in my state of stress!

>
> > For your second idea, would I need to type that into the python command
> > line interface (the one that looks like a DOS window?

>
> If you are actually in a python CLI, at the top of that screen does it
> say something like
>
> Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit
> (Intel)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
>
> ?
>
> If yes, then what I wrote earlier should actually work (I downloaded
> jBoost and looked at the nfold.py script). *Here it is again:
>
> --> import os
> --> os.chdir('path/to/nfold.py') # don't include nfold.py *
> --> import nfold
> --> import sys
> --> sys.argv = ["nfold.py", "--folds=5", "--data=spambase.data",
> ... "--spec=spambase.spec", "--rounds=500", "--tree=ADD_ALL",
> ... "--generate" ]
> ...
> --> nfold.main()
>
> I fixed the sys.argv line from last time.
>
> Good luck!
>
> ~Ethan~


Thanks to both of you for your help.

It's getting late here, I'll give it another try tomorrow
 
Reply With Quote
 
Adam Chapman
Guest
Posts: n/a
 
      06-22-2011
On Jun 21, 9:12*pm, Adam Chapman <(E-Mail Removed)>
wrote:
> On Jun 21, 8:00*pm, Ethan Furman <(E-Mail Removed)> wrote:
>
>
>
>
>
>
>
>
>
> > Adam Chapman wrote:
> > > Thanks Ethan

>
> > > No way could I have worked that out in my state of stress!

>
> > > For your second idea, would I need to type that into the python command
> > > line interface (the one that looks like a DOS window?

>
> > If you are actually in a python CLI, at the top of that screen does it
> > say something like

>
> > Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit
> > (Intel)] on win32
> > Type "help", "copyright", "credits" or "license" for more information.

>
> > ?

>
> > If yes, then what I wrote earlier should actually work (I downloaded
> > jBoost and looked at the nfold.py script). *Here it is again:

>
> > --> import os
> > --> os.chdir('path/to/nfold.py') # don't include nfold.py *
> > --> import nfold
> > --> import sys
> > --> sys.argv = ["nfold.py", "--folds=5", "--data=spambase.data",
> > ... "--spec=spambase.spec", "--rounds=500", "--tree=ADD_ALL",
> > ... "--generate" ]
> > ...
> > --> nfold.main()

>
> > I fixed the sys.argv line from last time.

>
> > Good luck!

>
> > ~Ethan~

>
> Thanks to both of you for your help.
>
> It's getting late here, I'll give it another try tomorrow


I've added the python directories to the environment variable "path"
in my computer (http://showmedo.com/videotutorials/video?
name=960000&fromSeriesID=96), which means I can now call python from
the windows DOS-style command prompt.

My formatting must be wrong when calling the nfold.py script to run.
My connad prompt call and the computer's response look like this:

C:\Users\Adam\Desktop\JBOOST\jboost-2.2\jboost-2.2\scripts>nfold.py
nfold.py
File "C:\Users\Adam\Desktop\JBOOST\jboost-2.2\jboost-2.2\scripts
\nfold.py", line 13
print 'Usage: nfold.py <--booster=boosttype> <--folds=number> [--
generate | --dir=dir] [--data=file --spec=file] [--rounds=number --
tree=treetype]'

^
SyntaxError: invalid syntax


What I dont understand is that some of the parameters in the syntax it
printed back are in <> brackets, and others in [] brackets.

I assume this is something a regular python user could notice straight
away.

Please let me know, I'd be very grateful
 
Reply With Quote
 
Chris Rebert
Guest
Posts: n/a
 
      06-22-2011
On Wed, Jun 22, 2011 at 8:54 AM, Adam Chapman
<(E-Mail Removed)> wrote:
<snip>
> I've added the python directories to the environment variable "path"
> in my computer (http://showmedo.com/videotutorials/video?
> name=960000&fromSeriesID=96), which means I can now call python from
> the windows DOS-style command prompt.
>
> My formatting must be wrong when calling the nfold.py script to run.


No, it's a syntax error in the script itself, at least under the
version of Python you're using.

> My connad prompt call and the computer's response look like this:
>
> C:\Users\Adam\Desktop\JBOOST\jboost-2.2\jboost-2.2\scripts>nfold.py
> nfold.py
> *File "C:\Users\Adam\Desktop\JBOOST\jboost-2.2\jboost-2.2\scripts
> \nfold.py", line 13
> * *print 'Usage: nfold.py <--booster=boosttype> <--folds=number> [--
> generate | --dir=dir] [--data=file --spec=file] [--rounds=number --
> tree=treetype]'
>
> ^
> SyntaxError: invalid syntax


You're probably running Python 3.x, which changed `print` from a
keyword to just a regular function; hence, `print foo` is illegal, and
one must write `print(foo)` instead.
Based on this, I'd say that nfold.py was written for Python 2.x rather
than Python 3.x; so you'll either need to port it to Python 3.x, or
install Python 2.x and run it under that.

Cheers,
Chris
--
http://rebertia.com
 
Reply With Quote
 
Adam Chapman
Guest
Posts: n/a
 
      06-22-2011
On Jun 22, 4:54*pm, Adam Chapman <(E-Mail Removed)>
wrote:
> On Jun 21, 9:12*pm, Adam Chapman <(E-Mail Removed)>
> wrote:
>
>
>
>
>
>
>
>
>
> > On Jun 21, 8:00*pm, Ethan Furman <(E-Mail Removed)> wrote:

>
> > > Adam Chapman wrote:
> > > > Thanks Ethan

>
> > > > No way could I have worked that out in my state of stress!

>
> > > > For your second idea, would I need to type that into the python command
> > > > line interface (the one that looks like a DOS window?

>
> > > If you are actually in a python CLI, at the top of that screen does it
> > > say something like

>
> > > Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit
> > > (Intel)] on win32
> > > Type "help", "copyright", "credits" or "license" for more information..

>
> > > ?

>
> > > If yes, then what I wrote earlier should actually work (I downloaded
> > > jBoost and looked at the nfold.py script). *Here it is again:

>
> > > --> import os
> > > --> os.chdir('path/to/nfold.py') # don't include nfold.py *
> > > --> import nfold
> > > --> import sys
> > > --> sys.argv = ["nfold.py", "--folds=5", "--data=spambase.data",
> > > ... "--spec=spambase.spec", "--rounds=500", "--tree=ADD_ALL",
> > > ... "--generate" ]
> > > ...
> > > --> nfold.main()

>
> > > I fixed the sys.argv line from last time.

>
> > > Good luck!

>
> > > ~Ethan~

>
> > Thanks to both of you for your help.

>
> > It's getting late here, I'll give it another try tomorrow

>
> I've added the python directories to the environment variable "path"
> in my computer (http://showmedo.com/videotutorials/video?
> name=960000&fromSeriesID=96), which means I can now call python from
> the windows DOS-style command prompt.
>
> My formatting must be wrong when calling the nfold.py script to run.
> My connad prompt call and the computer's response look like this:
>
> C:\Users\Adam\Desktop\JBOOST\jboost-2.2\jboost-2.2\scripts>nfold.py
> nfold.py
> * File "C:\Users\Adam\Desktop\JBOOST\jboost-2.2\jboost-2.2\scripts
> \nfold.py", line 13
> * * print 'Usage: nfold.py <--booster=boosttype> <--folds=number>[--
> generate | --dir=dir] [--data=file --spec=file] [--rounds=number --
> tree=treetype]'
>
> ^
> SyntaxError: invalid syntax
>
> What I dont understand is that some of the parameters in the syntax it
> printed back are in <> brackets, and others in [] brackets.
>
> I assume this is something a regular python user could notice straight
> away.
>
> Please let me know, I'd be very grateful


I just tried

nfold.py --booster=Adaboost --folds=5 --data=spambase.data --
spec=spambase.spec --rounds=500 --tree=ADD_ALL --generate --dir=C:
\Users\Adam\Desktop\cvdata

in the dos-style command prompt. It didn'g vive a syntax error this
time, it just repeated my command back to me in text. I assume I
called code correctly, but it didn't make a new folder full of data
like it should have.


 
Reply With Quote
 
Ethan Furman
Guest
Posts: n/a
 
      06-22-2011
Adam Chapman wrote:
> On Jun 21, 9:12 pm, Adam Chapman <(E-Mail Removed)>
> wrote:
>> On Jun 21, 8:00 pm, Ethan Furman <(E-Mail Removed)> wrote:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>> Adam Chapman wrote:
>>>> Thanks Ethan
>>>> No way could I have worked that out in my state of stress!
>>>> For your second idea, would I need to type that into the python command
>>>> line interface (the one that looks like a DOS window?
>>> If you are actually in a python CLI, at the top of that screen does it
>>> say something like
>>> Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit
>>> (Intel)] on win32
>>> Type "help", "copyright", "credits" or "license" for more information.
>>> ?
>>> If yes, then what I wrote earlier should actually work (I downloaded
>>> jBoost and looked at the nfold.py script). Here it is again:
>>> --> import os
>>> --> os.chdir('path/to/nfold.py') # don't include nfold.py
>>> --> import nfold
>>> --> import sys
>>> --> sys.argv = ["nfold.py", "--folds=5", "--data=spambase.data",
>>> ... "--spec=spambase.spec", "--rounds=500", "--tree=ADD_ALL",
>>> ... "--generate" ]
>>> ...
>>> --> nfold.main()
>>> I fixed the sys.argv line from last time.
>>> Good luck!
>>> ~Ethan~

>> Thanks to both of you for your help.
>>
>> It's getting late here, I'll give it another try tomorrow

>
> I've added the python directories to the environment variable "path"
> in my computer (http://showmedo.com/videotutorials/video?
> name=960000&fromSeriesID=96), which means I can now call python from
> the windows DOS-style command prompt.
>
> My formatting must be wrong when calling the nfold.py script to run.
> My connad prompt call and the computer's response look like this:
>
> C:\Users\Adam\Desktop\JBOOST\jboost-2.2\jboost-2.2\scripts>nfold.py
> nfold.py
> File "C:\Users\Adam\Desktop\JBOOST\jboost-2.2\jboost-2.2\scripts
> \nfold.py", line 13
> print 'Usage: nfold.py <--booster=boosttype> <--folds=number> [--
> generate | --dir=dir] [--data=file --spec=file] [--rounds=number --
> tree=treetype]'
>
> ^
> SyntaxError: invalid syntax


Looks like you are using Python 3, but nfold is Python 2. You're being
tripped up by one of the non-compatible changes -- namely, print is now
a function and so requires ().


> What I dont understand is that some of the parameters in the syntax it
> printed back are in <> brackets, and others in [] brackets.


Looking at nfold.py it seems that rounds and tree are optional, one of
generate or dir is required, if dir is not given then data and spec must
be, and booster and folds are required -- so I'm not really sure why
they chose the mixture of <> and [].


Also, on the version of jBoost I downloaded there is at least one error
on nfolds.py on line 134 -- it should be indented one more level.

Hope this helps.

~Ethan~
 
Reply With Quote
 
Ethan Furman
Guest
Posts: n/a
 
      06-22-2011
Adam Chapman wrote:
> On Jun 22, 4:54 pm, Adam Chapman <(E-Mail Removed)>
> wrote:
>> On Jun 21, 9:12 pm, Adam Chapman <(E-Mail Removed)>
>> wrote:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>> On Jun 21, 8:00 pm, Ethan Furman <(E-Mail Removed)> wrote:
>>>> Adam Chapman wrote:
>>>>> Thanks Ethan
>>>>> No way could I have worked that out in my state of stress!
>>>>> For your second idea, would I need to type that into the python command
>>>>> line interface (the one that looks like a DOS window?
>>>> If you are actually in a python CLI, at the top of that screen does it
>>>> say something like
>>>> Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit
>>>> (Intel)] on win32
>>>> Type "help", "copyright", "credits" or "license" for more information.
>>>> ?
>>>> If yes, then what I wrote earlier should actually work (I downloaded
>>>> jBoost and looked at the nfold.py script). Here it is again:
>>>> --> import os
>>>> --> os.chdir('path/to/nfold.py') # don't include nfold.py
>>>> --> import nfold
>>>> --> import sys
>>>> --> sys.argv = ["nfold.py", "--folds=5", "--data=spambase.data",
>>>> ... "--spec=spambase.spec", "--rounds=500", "--tree=ADD_ALL",
>>>> ... "--generate" ]
>>>> ...
>>>> --> nfold.main()
>>>> I fixed the sys.argv line from last time.
>>>> Good luck!
>>>> ~Ethan~
>>> Thanks to both of you for your help.
>>> It's getting late here, I'll give it another try tomorrow

>> I've added the python directories to the environment variable "path"
>> in my computer (http://showmedo.com/videotutorials/video?
>> name=960000&fromSeriesID=96), which means I can now call python from
>> the windows DOS-style command prompt.
>>
>> My formatting must be wrong when calling the nfold.py script to run.
>> My connad prompt call and the computer's response look like this:
>>
>> C:\Users\Adam\Desktop\JBOOST\jboost-2.2\jboost-2.2\scripts>nfold.py
>> nfold.py
>> File "C:\Users\Adam\Desktop\JBOOST\jboost-2.2\jboost-2.2\scripts
>> \nfold.py", line 13
>> print 'Usage: nfold.py <--booster=boosttype> <--folds=number> [--
>> generate | --dir=dir] [--data=file --spec=file] [--rounds=number --
>> tree=treetype]'
>>
>> ^
>> SyntaxError: invalid syntax
>>
>> What I dont understand is that some of the parameters in the syntax it
>> printed back are in <> brackets, and others in [] brackets.
>>
>> I assume this is something a regular python user could notice straight
>> away.
>>
>> Please let me know, I'd be very grateful

>
> I just tried
>
> nfold.py --booster=Adaboost --folds=5 --data=spambase.data --
> spec=spambase.spec --rounds=500 --tree=ADD_ALL --generate --dir=C:
> \Users\Adam\Desktop\cvdata
>
> in the dos-style command prompt. It didn'g vive a syntax error this
> time, it just repeated my command back to me in text. I assume I
> called code correctly, but it didn't make a new folder full of data
> like it should have.
>


Which version of jBoost, and which version of Python?

~Ethan~

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Block execution of script while same script is already running MrBanabas@googlemail.com Ruby 2 12-17-2008 06:03 PM
Existing Dll - using Functions from an existing dll Tristin.Colby@gmail.com Ruby 0 02-05-2008 07:38 PM
How to fetch output of some other script in the current running perl script? ritugoyal12@gmail.com Perl Misc 4 10-27-2007 03:52 PM
Why no existing Java type to existing XML schema binding support? nrm Java 3 04-10-2006 04:52 PM
modify a long-running python script while it is running? Benjamin Rutt Python 2 12-20-2005 01:42 PM



Advertisments