python commmand line params from c++

Denis S. Otkidach ods at strana.ru
Thu Jun 30 11:07:36 EDT 2005


On 30 Jun 2005 07:52:04 -0700
"Wesley Henwood" <wesleyhenwood at hotmail.com> wrote:

> What is the proper way to pass command line parameters to a python
> script called from C++? I'm tryng this:

Have you tried PySys_SetArgv?

> path = "c:\\someDir\\someScript.py param1 param2 param3";
> PyRun_SimpleFile(PyFile_AsFile( PyFile_FromString( path, "r")),
> "someScript.py");

This code looks strange: you open file and create Python file object
from its descriptor (PyFile_FromString), then get descripto back
(PyFile_AsFile) to pass it to PyRun_SimpleFile.  Why don't you just use
C fopen function?

> I'm getting a "format error someScript.py, line 1" when the code is
> executed.
> 
> Note: The strange appearannce of the 3 python function calls nested is
> not a bug, but required to prevent a run-time error.

I believe it's due to PyFile_FromString failing to open non-existent
file.  You must check return value of it.

-- 
Denis S. Otkidach
http://www.python.ru/      [ru]



More information about the Python-list mailing list