最初的问题已经解决,但还有更多......
__
我在网上找到了这个整洁的LTS tool。由于训练需要相当长的时间,我想加快速度。在寻找方法时,我遇到了PyPy。
Pypy现在已经设置好了,但似乎没有使用Sequitur g2p代码。导入来自.so文件的模块时,我得到No module named _sequitur_
。
我还尝试使用PyPy
而不是Python
安装/编译代码,这些代码在没有任何有用(?)错误的情况下崩溃。
我在使用Python 2.7.10的Ubuntu Linux 14.04上运行PyPy v2.6.1。
使用默认解释器调用g2p可以正常工作。
是否需要通过来自PyPy
的调用来编译有问题的.so文件?
编辑#1:
当尝试使用PyPy而不是CPython安装g2p时,它会在没有此命令后崩溃:
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
从控制台调用此特定命令时,如果不是setup.py的一部分,则有两个错误:
/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)
使用CPhyton安装时未显示或导致错误。
diff
还表明,在上述路径下的ndarrayobject.h与/usr/local/lib/python2.7/site-packages/numpy/andsoon中的ndarrayobject.h没有区别。
因为我不知道c ++是如何工作的,所以我迷失了......
编辑#2:
嗯,不知怎的,它不适用于第一个包含(指向pypy的numpy)。可能不是干净的方式,但它有助于摆脱这个问题。所以我替换了setup.py中的 include_dirs 条目,并将其指向cPython的numpy包括dir。
完成后,setup.py运行没有任何错误。当我现在尝试import sequitur
(一个必要的文件)时,我注意到一个.so丢失,将它从cPython的numpy复制到Pypy的numpy。到目前为止这么好但现在我仍然得到这个错误:
$ 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
有什么建议吗?
由于