Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #104838 > unrolled thread

Embedding Python into C set up issues

Started bysteven.flolid@gmail.com
First post2016-03-14 09:52 -0700
Last post2016-03-14 18:49 -0700
Articles 2 — 2 participants

Back to article view | Back to comp.lang.python


Contents

  Embedding Python into C set up issues steven.flolid@gmail.com - 2016-03-14 09:52 -0700
    Re: Embedding Python into C set up issues robert.snoeberger@gmail.com - 2016-03-14 18:49 -0700

#104838 — Embedding Python into C set up issues

Fromsteven.flolid@gmail.com
Date2016-03-14 09:52 -0700
SubjectEmbedding Python into C set up issues
Message-ID<db3c8a72-1b47-4460-822d-a1be169d6637@googlegroups.com>
Good morning!

I have been working with Python for the last few months. I have created a script that I want to embed into a C++ environment, specifically CDT for eclipse. I have read the https://docs.python.org/2/extending/index.html and understand the ideas and differences between the two languages. 

However, I am having great trouble getting Py_Initialize() to work in the both CDT and Visual Studio 2015. I have as a starting point a simple C program that prints hello world then calls py_initialize and then prints another line of text to the screen. Calling Py_initialize causes the script to exit with exit code 1. I am at a loss as to why this is happening. I have read the documentation about Py_Initialize() calling exit when it should raise an error so I understand it may be difficult to debug this issue.

Here are the details for my system:

Windows 7 64bit running python 2.7.11 using Visual Studio Community Edition 2015. 

Python is installed in the default folder of C:\Python27 and is the only copy of python installed.

Path is has C:\Python27 and C:\Python27\DLLs appended to it in that order.

PYTHONPATH is set to C:\python27lib

In visual studio:

C++/Additional Include Directories has C:\Python27\include appended to it

Linker/Additional Library Directories has C:\Python27\libs appended to it

Linker/Additional Dependencies has python27.lib appended to it



Here is the source code:

#include <Python.h>
#include <stdio.h>

int main() {
	printf("hello world");
	Py_Initialize();
	printf("hello world please");
}

I feel like I must be missing something, I just don't know what it is. Any documentation or help would be much appreciated.

Sincerely,

Steven Flolid

[toc] | [next] | [standalone]


#104902

Fromrobert.snoeberger@gmail.com
Date2016-03-14 18:49 -0700
Message-ID<78237132-5751-458d-9042-e14977da087f@googlegroups.com>
In reply to#104838
> 
> However, I am having great trouble getting Py_Initialize() to work in the both CDT and Visual Studio 2015. I have as a starting point a simple C program that prints hello world then calls py_initialize and then prints another line of text to the screen. Calling Py_initialize causes the script to exit with exit code 1. I am at a loss as to why this is happening. I have read the documentation about Py_Initialize() calling exit when it should raise an error so I understand it may be difficult to debug this issue.
> 

The documentation for Py_Initialize says, "There is no return value; it is a fatal error if the initialization fails." Initialization is failing in your C program, probably because it isn't able to locate a module needed for startup, such as site or encodings.

Py_Initialize doc: https://docs.python.org/2/c-api/init.html#c.Py_Initialize

You probably need to specify the "home" directory, either with the environment variable PYTHONHOME or with Py_SetPythonHome. For your system, the directory should be C:\Python27.

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web