0

The initial problem was solved, but there are more ...

__

I found this neat LTS tool online. Since it takes quite some time for training I'd like to speed things up. While searching for an approach I came across PyPy.

Pypy is now setup and seems to be working, but not with the Sequitur g2p code. When importing a module which comes from a .so file I get a No module named _sequitur_ .

I also tried installing/compiling the code with PyPy instead of Python which crashes without any useful(?) error.

I run PyPy v2.6.1 on a Ubuntu Linux 14.04 with Python 2.7.10.

Calling g2p with the default interpreter works fine.

Does the problematic .so file need to be compiled via a call from PyPy ?

Edit #1:

When trying to install g2p with PyPy instead of CPython it crashes without after this command:

error: Command "cc -O2 -fPIC -Wimplicit -DMULTIGRAM_SIZE=2 -I/opt/pypy-2.6.1-linux64/site-packages/numpy/core/include -I/opt/pypy-2.6.1-linux64/include -c sequitur_wrap.cpp -o build/temp.linux-x86_64-2.7/sequitur_wrap.o -fpermissive" failed with exit status 1

When calling this particular command from the console, without being a part of the setup.py, there are two errors:

/opt/pypy-2.6.1-linux64/site-packages/numpy/core/include/numpy/ndarrayobject.h:192:55: error: ‘PyArray_DescrFromType’ was not declared in this scope
         PyArray_FromAny(op, PyArray_DescrFromType(type), min_depth, \

&

/opt/pypy-2.6.1-linux64/site-packages/numpy/core/include/numpy/ndarrayobject.h:194:69: error: ‘PyArray_FromAny’ was not declared in this scope
                                          NPY_ARRAY_ENSUREARRAY, NULL)

This either didn't appear or caused an error when installing with CPhyton. diff also shows that ndarrayobject.h under the mentioned path doesn't differ from the one in /usr/local/lib/python2.7/site-packages/numpy/andsoon .

Since I have no clue how c++ works, I'm lost there...

Edit #2:

Well, somehow it didn't work with the first include (pointing to pypy's numpy). Probably not the clean way to do it, but it helped to get rid of that problem. So I substituted the include_dirs entry in the setup.py and pointed that one to cPython's numpy include dir. That done, the setup.py runs without any error. When I now try to import sequitur (one of the necessary files) I noticed that one .so was missing, copied it from cPython's numpy to Pypy's numpy. So far so good but now I still get this error:

$ pypy
Python 2.7.10 (f3ad1e1e1d62, Aug 28 2015, 10:45:29)
[PyPy 2.6.1 with GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
 import sequitur
AttributeError: _ARRAY_API not found
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "sequitur.py", line 32, in <module>
    import sequitur_, SequenceModel, Minimization, misc
  File "sequitur_.py", line 28, in <module>
    _sequitur_ = swig_import_helper()
  File "sequitur_.py", line 20, in swig_import_helper
    import _sequitur_
ImportError: numpy.core.multiarray failed to import

Any suggestions?

Thanks

entenbein
  • 25
  • 6
  • how is pypy installed, virtualenv? system wide? did you use pip? – scytale Sep 18 '15 at 14:13
  • pypy is installed system wide. I followed those instructuions: http://pypy.org/download.html#installing. I used pip for installing numpy. Importing the latter works fine. – entenbein Sep 18 '15 at 14:27
  • You need to compile and install packages with a call to "pypy setup.py install", for example, instead of "python setup.py install" (or use pip installed with pypy, or any other way that implies that you're using pypy and not cpython). "Crash without any useful error" is probably what you should give details about. – Armin Rigo Sep 19 '15 at 06:33
  • crashes? there must be some information - something printed on the console after the crash? – scytale Sep 21 '15 at 08:19
  • My comment was incomplete, please see the edit above.. – entenbein Sep 21 '15 at 08:35
  • Anyone? Your help is highly appreciated – entenbein Sep 30 '15 at 13:46

0 Answers0