[issue19153] Embedding into a shared library fails again

2013-10-03 Thread Rinat

New submission from Rinat:

I have same error as here described http://bugs.python.org/issue4434

I made everythings according this article 
http://docs.python.org/2/extending/embedding.html#compiling-and-linking-under-unix-like-systems
 and more but when i try to call interpriter from C++ it fails with errors

python_support::pre_process_payment() failed
Traceback (most recent call last):
  File "", line 1, in 
  File "/payments/__init__.py", line 1, in 
from .factory import *
  File "/payments/factory.py", line 7, in 
import psycopg2
  File "/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py", line 50, 
in 
from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: /usr/local/lib/python2.7/dist-packages/psycopg2/_psycopg.so: 
undefined symbol: PyExc_SystemError
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/apport_python_hook.py", line 66, in 
apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python2.7/dist-packages/apport/__init__.py", line 1, in 

from apport.report import Report
  File "/usr/lib/python2.7/dist-packages/apport/report.py", line 16, in 
from xml.parsers.expat import ExpatError
  File "/usr/lib/python2.7/xml/parsers/expat.py", line 4, in 
from pyexpat import *
ImportError: /usr/lib/python2.7/lib-dynload/pyexpat.so: undefined symbol: 
_Py_ZeroStruct

Original exception was:
Traceback (most recent call last):
  File "", line 1, in 
  File "/payments/__init__.py", line 1, in 
from .factory import *
  File "/payments/factory.py", line 7, in 
import psycopg2
  File "/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py", line 50, 
in 
from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: /usr/local/lib/python2.7/dist-packages/psycopg2/_psycopg.so: 
undefined symbol: PyExc_SystemError


Environment
3.2.0-54-generic-pae #82-Ubuntu (12.04)
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Boost.Python 1.48
Python 2.7.3 (default, Sep 26 2013, 20:08:41) 
[GCC 4.6.3] on linux2

No custom builds. Every package from ubuntu repository. Psycopg2 installed by 
pip

Project is big so i can't to provide code

--
components: Library (Lib)
messages: 198900
nosy: rinatous
priority: normal
severity: normal
status: open
title: Embedding into a shared library fails again
type: behavior
versions: Python 2.7

___
Python tracker 
<http://bugs.python.org/issue19153>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue19153] Embedding into a shared library fails again

2013-10-04 Thread Rinat

Rinat added the comment:

> Or perhaps you can dlopen the CPython shared library with the RTLD_GLOBAL 
> flag. I don't know.

Yes, it works. I made it is my shared library before boost block like this

{
  void* handle = dlopen("libpython2.7.so", RTLD_LAZY | RTLD_GLOBAL);
  // boost wrapper for python call
  dlclose(handle);
}


I think if nothing helps, i'll put this code into __attribute__((ctor|dtor)) 
functions

Thanks a lot

--

___
Python tracker 
<http://bugs.python.org/issue19153>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com