我一直在寻找可能的解决方案,似乎已经用光了。我正在尝试安装JPype,因为我需要它来为这个锅炉管道包...
https://github.com/ptwobrussell/python-boilerpipe
...支持本教程https://github.com/ptwobrussell/Mining-the-Social-Web-2nd-Edition
...但我一直收到以下错误。我已尝试安装从pypi下载的.tar.gz和Github repo,但仍然会收到错误。
FYI
echo $JAVA_HOME
/usr/lib/jvm/java-7-openjdk-amd64
我正在使用Ubuntu 14.04.4 LTS Vagrant Box,运行带有虚拟python 2.7.11环境的Anaconda Python(因此输出开头的(python2))。我在这里仍然是一个新手,所以任何指针都会非常感激。
(python2)vagrant@vagrant-ubuntu-trusty-64:~/Downloads$ pip install jpype1
Collecting jpype1
Using cached JPype1-0.6.1.tar.gz
Building wheels for collected packages: jpype1
Running setup.py bdist_wheel for jpype1 ... error
Complete output from command /home/vagrant/anaconda2/envs/python2/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-R2h1AL/jpype1/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpr6idxepip-wheel- --python-tag cp27:
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/jpype
copying jpype/_gui.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jarray.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/reflect.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jpackage.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jwrapper.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_properties.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_darwin.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jproxy.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jobject.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_windows.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_core.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jclass.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jexception.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/nio.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/JClassUtil.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jcollection.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_refdaemon.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_linux.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/__init__.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_pykeywords.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jvmfinder.py -> build/lib.linux-x86_64-2.7/jpype
creating build/lib.linux-x86_64-2.7/jpype/awt
copying jpype/awt/__init__.py -> build/lib.linux-x86_64-2.7/jpype/awt
creating build/lib.linux-x86_64-2.7/jpype/awt/event
copying jpype/awt/event/__init__.py -> build/lib.linux-x86_64-2.7/jpype/awt/event
copying jpype/awt/event/WindowAdapter.py -> build/lib.linux-x86_64-2.7/jpype/awt/event
creating build/lib.linux-x86_64-2.7/jpypex
copying jpypex/__init__.py -> build/lib.linux-x86_64-2.7/jpypex
creating build/lib.linux-x86_64-2.7/jpypex/swing
copying jpypex/swing/pyutils.py -> build/lib.linux-x86_64-2.7/jpypex/swing
copying jpypex/swing/AbstractAction.py -> build/lib.linux-x86_64-2.7/jpypex/swing
copying jpypex/swing/__init__.py -> build/lib.linux-x86_64-2.7/jpypex/swing
running build_ext
/tmp/pip-build-R2h1AL/jpype1/setup.py:147: FeatureNotice: Turned ON Numpy support for fast Java array access
FeatureNotice)
building '_jpype' extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/native
creating build/temp.linux-x86_64-2.7/native/python
creating build/temp.linux-x86_64-2.7/native/common
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_NUMPY=1 -Inative/common/include -Inative/python/include -I/usr/lib/jvm/java-7-openjdk-amd64/include -I/usr/lib/jvm/java-7-openjdk-amd64/include/linux -I/home/vagrant/anaconda2/envs/python2/lib/python2.7/site-packages/numpy/core/include -I/home/vagrant/anaconda2/envs/python2/include/python2.7 -c native/python/py_monitor.cpp -o build/temp.linux-x86_64-2.7/native/python/py_monitor.o -ggdb
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
In file included from native/python/include/jpype_python.h:24:0,
from native/python/py_monitor.cpp:17:
native/common/include/jpype.h:63:0: warning: "PyUnicode_FromFormat" redefined [enabled by default]
#define PyUnicode_FromFormat PyString_FromFormat
^
In file included from /home/vagrant/anaconda2/envs/python2/include/python2.7/Python.h:85:0,
from native/python/include/jpype_python.h:23,
from native/python/py_monitor.cpp:17:
/home/vagrant/anaconda2/envs/python2/include/python2.7/unicodeobject.h:277:0: note: this is the location of the previous definition
# define PyUnicode_FromFormat PyUnicodeUCS4_FromFormat
^
In file included from /usr/include/stdio.h:934:0,
from /home/vagrant/anaconda2/envs/python2/include/python2.7/Python.h:33,
from native/python/include/jpype_python.h:23,
from native/python/py_monitor.cpp:17:
/usr/include/bits/stdio.h: In function ‘__ssize_t getline(char**, size_t*, FILE*)’:
/usr/include/bits/stdio.h:117:52: error: ‘__getdelim’ was not declared in this scope
return __getdelim (__lineptr, __n, '\n', __stream);
^
In file included from /home/vagrant/anaconda2/envs/python2/include/python2.7/Python.h:38:0,
from native/python/include/jpype_python.h:23,
from native/python/py_monitor.cpp:17:
/usr/include/string.h: At global scope:
/usr/include/string.h:546:5: error: ‘__locale_t’ has not been declared
__locale_t __loc)
^
In file included from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/features.h:338:0,
from /usr/include/limits.h:25,
from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/limits.h:168,
from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/syslimits.h:7,
from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/limits.h:34,
from /home/vagrant/anaconda2/envs/python2/include/python2.7/Python.h:19,
from native/python/include/jpype_python.h:23,
from native/python/py_monitor.cpp:17:
/usr/include/string.h:547:33: error: nonnull argument references non-pointer operand (argument 1, operand 3)
__THROW __attribute_pure__ __nonnull ((1, 2, 3));
^
In file included from /home/vagrant/anaconda2/envs/python2/include/python2.7/Python.h:38:0,
from native/python/include/jpype_python.h:23,
from native/python/py_monitor.cpp:17:
/usr/include/string.h:550:18: error: ‘__locale_t’ has not been declared
size_t __n, __locale_t __loc)
^
In file included from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/features.h:338:0,
from /usr/include/limits.h:25,
from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/limits.h:168,
from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/syslimits.h:7,
from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/limits.h:34,
from /home/vagrant/anaconda2/envs/python2/include/python2.7/Python.h:19,
from native/python/include/jpype_python.h:23,
from native/python/py_monitor.cpp:17:
/usr/include/string.h:551:33: error: nonnull argument references non-pointer operand (argument 1, operand 4)
__THROW __attribute_pure__ __nonnull ((1, 2, 4));
^
In file included from /home/vagrant/anaconda2/envs/python2/gcc/include/c++/bits/localefwd.h:40:0,
from /home/vagrant/anaconda2/envs/python2/gcc/include/c++/string:43,
from native/common/include/jpype.h:68,
from native/python/include/jpype_python.h:24,
from native/python/py_monitor.cpp:17:
/home/vagrant/anaconda2/envs/python2/gcc/include/c++/x86_64-unknown-linux-gnu/bits/c++locale.h:52:23: error: ‘uselocale’ was not declared in this scope
extern "C" __typeof(uselocale) __uselocale;
^
/home/vagrant/anaconda2/envs/python2/gcc/include/c++/x86_64-unknown-linux-gnu/bits/c++locale.h:52:45: error: invalid type in declaration before ‘;’ token
extern "C" __typeof(uselocale) __uselocale;
^
/home/vagrant/anaconda2/envs/python2/gcc/include/c++/x86_64-unknown-linux-gnu/bits/c++locale.h: In function ‘int std::__convert_from_v(__locale_struct* const&, char*, int, const char*, ...)’:
/home/vagrant/anaconda2/envs/python2/gcc/include/c++/x86_64-unknown-linux-gnu/bits/c++locale.h:75:53: error: ‘__gnu_cxx::__uselocale’ cannot be used as a function
__c_locale __old = __gnu_cxx::__uselocale(__cloc);
^
/home/vagrant/anaconda2/envs/python2/gcc/include/c++/x86_64-unknown-linux-gnu/bits/c++locale.h:100:33: error: ‘__gnu_cxx::__uselocale’ cannot be used as a function
__gnu_cxx::__uselocale(__old);
^
error: command 'gcc' failed with exit status 1
----------------------------------------
Failed building wheel for jpype1
Running setup.py clean for jpype1
Failed to build jpype1
Installing collected packages: jpype1
Running setup.py install for jpype1 ... error
Complete output from command /home/vagrant/anaconda2/envs/python2/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-R2h1AL/jpype1/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-RtLlzc-record/install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/jpype
copying jpype/_gui.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jarray.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/reflect.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jpackage.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jwrapper.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_properties.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_darwin.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jproxy.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jobject.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_windows.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_core.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jclass.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jexception.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/nio.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/JClassUtil.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jcollection.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_refdaemon.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_linux.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/__init__.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_pykeywords.py -> build/lib.linux-x86_64-2.7/jpype
copying jpype/_jvmfinder.py -> build/lib.linux-x86_64-2.7/jpype
creating build/lib.linux-x86_64-2.7/jpype/awt
copying jpype/awt/__init__.py -> build/lib.linux-x86_64-2.7/jpype/awt
creating build/lib.linux-x86_64-2.7/jpype/awt/event
copying jpype/awt/event/__init__.py -> build/lib.linux-x86_64-2.7/jpype/awt/event
copying jpype/awt/event/WindowAdapter.py -> build/lib.linux-x86_64-2.7/jpype/awt/event
creating build/lib.linux-x86_64-2.7/jpypex
copying jpypex/__init__.py -> build/lib.linux-x86_64-2.7/jpypex
creating build/lib.linux-x86_64-2.7/jpypex/swing
copying jpypex/swing/pyutils.py -> build/lib.linux-x86_64-2.7/jpypex/swing
copying jpypex/swing/AbstractAction.py -> build/lib.linux-x86_64-2.7/jpypex/swing
copying jpypex/swing/__init__.py -> build/lib.linux-x86_64-2.7/jpypex/swing
running build_ext
/tmp/pip-build-R2h1AL/jpype1/setup.py:147: FeatureNotice: Turned ON Numpy support for fast Java array access
FeatureNotice)
building '_jpype' extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/native
creating build/temp.linux-x86_64-2.7/native/python
creating build/temp.linux-x86_64-2.7/native/common
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_NUMPY=1 -Inative/common/include -Inative/python/include -I/usr/lib/jvm/java-7-openjdk-amd64/include -I/usr/lib/jvm/java-7-openjdk-amd64/include/linux -I/home/vagrant/anaconda2/envs/python2/lib/python2.7/site-packages/numpy/core/include -I/home/vagrant/anaconda2/envs/python2/include/python2.7 -c native/python/py_monitor.cpp -o build/temp.linux-x86_64-2.7/native/python/py_monitor.o -ggdb
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
In file included from native/python/include/jpype_python.h:24:0,
from native/python/py_monitor.cpp:17:
native/common/include/jpype.h:63:0: warning: "PyUnicode_FromFormat" redefined [enabled by default]
#define PyUnicode_FromFormat PyString_FromFormat
^
In file included from /home/vagrant/anaconda2/envs/python2/include/python2.7/Python.h:85:0,
from native/python/include/jpype_python.h:23,
from native/python/py_monitor.cpp:17:
/home/vagrant/anaconda2/envs/python2/include/python2.7/unicodeobject.h:277:0: note: this is the location of the previous definition
# define PyUnicode_FromFormat PyUnicodeUCS4_FromFormat
^
In file included from /usr/include/stdio.h:934:0,
from /home/vagrant/anaconda2/envs/python2/include/python2.7/Python.h:33,
from native/python/include/jpype_python.h:23,
from native/python/py_monitor.cpp:17:
/usr/include/bits/stdio.h: In function ‘__ssize_t getline(char**, size_t*, FILE*)’:
/usr/include/bits/stdio.h:117:52: error: ‘__getdelim’ was not declared in this scope
return __getdelim (__lineptr, __n, '\n', __stream);
^
In file included from /home/vagrant/anaconda2/envs/python2/include/python2.7/Python.h:38:0,
from native/python/include/jpype_python.h:23,
from native/python/py_monitor.cpp:17:
/usr/include/string.h: At global scope:
/usr/include/string.h:546:5: error: ‘__locale_t’ has not been declared
__locale_t __loc)
^
In file included from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/features.h:338:0,
from /usr/include/limits.h:25,
from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/limits.h:168,
from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/syslimits.h:7,
from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/limits.h:34,
from /home/vagrant/anaconda2/envs/python2/include/python2.7/Python.h:19,
from native/python/include/jpype_python.h:23,
from native/python/py_monitor.cpp:17:
/usr/include/string.h:547:33: error: nonnull argument references non-pointer operand (argument 1, operand 3)
__THROW __attribute_pure__ __nonnull ((1, 2, 3));
^
In file included from /home/vagrant/anaconda2/envs/python2/include/python2.7/Python.h:38:0,
from native/python/include/jpype_python.h:23,
from native/python/py_monitor.cpp:17:
/usr/include/string.h:550:18: error: ‘__locale_t’ has not been declared
size_t __n, __locale_t __loc)
^
In file included from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/features.h:338:0,
from /usr/include/limits.h:25,
from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/limits.h:168,
from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/syslimits.h:7,
from /home/vagrant/anaconda2/envs/python2/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed/limits.h:34,
from /home/vagrant/anaconda2/envs/python2/include/python2.7/Python.h:19,
from native/python/include/jpype_python.h:23,
from native/python/py_monitor.cpp:17:
/usr/include/string.h:551:33: error: nonnull argument references non-pointer operand (argument 1, operand 4)
__THROW __attribute_pure__ __nonnull ((1, 2, 4));
^
In file included from /home/vagrant/anaconda2/envs/python2/gcc/include/c++/bits/localefwd.h:40:0,
from /home/vagrant/anaconda2/envs/python2/gcc/include/c++/string:43,
from native/common/include/jpype.h:68,
from native/python/include/jpype_python.h:24,
from native/python/py_monitor.cpp:17:
/home/vagrant/anaconda2/envs/python2/gcc/include/c++/x86_64-unknown-linux-gnu/bits/c++locale.h:52:23: error: ‘uselocale’ was not declared in this scope
extern "C" __typeof(uselocale) __uselocale;
^
/home/vagrant/anaconda2/envs/python2/gcc/include/c++/x86_64-unknown-linux-gnu/bits/c++locale.h:52:45: error: invalid type in declaration before ‘;’ token
extern "C" __typeof(uselocale) __uselocale;
^
/home/vagrant/anaconda2/envs/python2/gcc/include/c++/x86_64-unknown-linux-gnu/bits/c++locale.h: In function ‘int std::__convert_from_v(__locale_struct* const&, char*, int, const char*, ...)’:
/home/vagrant/anaconda2/envs/python2/gcc/include/c++/x86_64-unknown-linux-gnu/bits/c++locale.h:75:53: error: ‘__gnu_cxx::__uselocale’ cannot be used as a function
__c_locale __old = __gnu_cxx::__uselocale(__cloc);
^
/home/vagrant/anaconda2/envs/python2/gcc/include/c++/x86_64-unknown-linux-gnu/bits/c++locale.h:100:33: error: ‘__gnu_cxx::__uselocale’ cannot be used as a function
__gnu_cxx::__uselocale(__old);
^
error: command 'gcc' failed with exit status 1
----------------------------------------
Command "/home/vagrant/anaconda2/envs/python2/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-R2h1AL/jpype1/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-RtLlzc-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-R2h1AL/jpype1/
答案 0 :(得分:0)
我被置于Github的正确道路上。总而言之,因为我使用的是Anaconda虚拟环境,所以它在Anaconda而不是Ubuntu下寻找gcc。
这可以使用which gcc
确定,如果使用Ubuntu系统gcc,则应返回/usr/bin/gcc
,但我的返回/home/vagrant/anaconda2/envs/python2/bin/gcc
。
最初我认为我需要覆盖它以将其指向系统gcc,但是通过首先确保我在Anaconda虚拟环境中运行,然后
,它很容易解决conda install gcc
之后,Jpype安装得很好。
答案 1 :(得分:0)
我在2019年面临同样的问题,我做了以下工作: 二进制安装: 从conda-forge软件频道进行安装:
conda install -c conda-forge jpype1
对我有用。