Can';安装javabridge

Can';安装javabridge,java,python,pip,Java,Python,Pip,Ubuntu 18.04,python 2.7 我试着 我明白了 但事实证明,我需要最新的1.0.17,我仍然得到上面的错误 此命令 find /usr/lib/jvm/java-11-openjdk-amd64 -type f -name "*jvm.so" 给予 然后我跑了 JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 ~$ JDK_HOME=/usr/lib/jvm/java-11-openjdk-amd64 最后 sudo pip inst

Ubuntu 18.04,python 2.7

我试着

我明白了

但事实证明,我需要最新的1.0.17,我仍然得到上面的错误

此命令

find /usr/lib/jvm/java-11-openjdk-amd64 -type f -name "*jvm.so"
给予

然后我跑了

JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
~$ JDK_HOME=/usr/lib/jvm/java-11-openjdk-amd64
最后

sudo pip install javabridge --user myName
给出了相同的错误

Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-i61jKx/javabridge/setup.py", line 396, in <module>
        ext_modules=ext_modules(),
      File "/tmp/pip-install-i61jKx/javabridge/setup.py", line 131, in ext_modules
        library_dirs = [os.path.dirname(jvm_so)]
      File "/usr/lib/python2.7/posixpath.py", line 122, in dirname
        i = p.rfind('/') + 1
    AttributeError: 'NoneType' object has no attribute 'rfind'
从命令python setup.py egg\u info完成输出:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/tmp/pip-install-i61jKx/javabridge/setup.py”,第396行,在
ext_模块=ext_模块(),
ext_模块中的文件“/tmp/pip-install-i61jKx/javabridge/setup.py”,第131行
library\u dirs=[os.path.dirname(jvm\u so)]
文件“/usr/lib/python2.7/posixpath.py”,第122行,在dirname中
i=p.rfind('/')+1
AttributeError:“非类型”对象没有属性“rfind”
我也试过了

JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 JDK_HOME=/usr/lib/jvm/java-11-openjdk-amd64 pip install javabridge --user

Collecting javabridge
  Using cached https://files.pythonhosted.org/packages/68/87/0b016838c2a33b46b8775a3890150c93507931127cf62e9ccf27ac20db34/javabridge-1.0.17.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-QDCLar/javabridge/setup.py", line 396, in <module>
        ext_modules=ext_modules(),
      File "/tmp/pip-install-QDCLar/javabridge/setup.py", line 131, in ext_modules
        library_dirs = [os.path.dirname(jvm_so)]
      File "/usr/lib/python2.7/posixpath.py", line 122, in dirname
        i = p.rfind('/') + 1
    AttributeError: 'NoneType' object has no attribute 'rfind'
JAVA_HOME=/usr/lib/jvm/JAVA-11-openjdk-amd64 JDK_HOME=/usr/lib/jvm/JAVA-11-openjdk-amd64 pip安装javabridge——用户
收集javabridge
使用缓存https://files.pythonhosted.org/packages/68/87/0b016838c2a33b46b8775a3890150c93507931127cf62e9ccf27ac20db34/javabridge-1.0.17.tar.gz
从命令python setup.py egg_info完成输出:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/tmp/pip install QDCLar/javabridge/setup.py”,第396行,在
ext_模块=ext_模块(),
文件“/tmp/pip install QDCLar/javabridge/setup.py”,第131行,在ext_模块中
library\u dirs=[os.path.dirname(jvm\u so)]
文件“/usr/lib/python2.7/posixpath.py”,第122行,在dirname中
i=p.rfind('/')+1
AttributeError:“非类型”对象没有属性“rfind”

Javabridge需要Python2.6或更高版本、NumPy、Java开发工具包(JDK)和C编译器

sudo apt install python2.7 python-numpy openjdk-8-jdk gcc

看起来你好像遇到了麻烦
javabridge
package没有更新到Java 9/10/11中关于JRE目标目录(以删除的目标拱门命名的中间目录)重构的更改,因此您目前只能使用Java 8。这就是我如何在
ubuntu:latest
docker容器中成功安装
javabridge

$ apt update
$ apt install software-properties-common
$ add-apt-repository ppa:webupd8team/java
$ apt install openjdk-8-jdk
$ update-alternatives --config java
这将为您提供类似于
/usr/lib/jvm/java-8-OpenJDK-amd64/jre/bin/java
的OpenJDK 8路径,删除
jre/bin/java
后缀以获得JDK根

现在安装
javabridge

$ JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 pip install javabridge --user
Installing collected packages: javabridge
  Running setup.py install for javabridge ... done
Successfully installed javabridge-1.0.17

您缺少Java编译器
javac
。安装JDK:
apt安装默认JDK
。谢谢。我有ls/usr/lib/jvm/java-8-openjdk-amd64/,你的建议还适用吗?很可能只是JRE(java运行时环境)不够。谢谢。我试过了,现在得到了不同的错误。请参见上面的编辑。我应该这样做吗?我应该走哪条路?当然,您需要设置JDK以使其可用。通过发出
printf'import java.lang.*来测试是否工作;公共类测试{public static void main(String[]args){System.out.println(“Hello world”);}}>Test.java&&javac Test.java&&java Test&&rm Test.*
,您应该打印
Hello world
我想我应该打印所有这些,您有具体的建议,具体的命令要运行吗?请看上面,我运行了您的命令,然后获取rfind的另一个错误。获取gpg:unknown选项“仅显示”gpg:invalid import选项获取了“0”指纹,预期只有一个指纹无法添加密钥。事实上,它工作正常,谢谢。但我在尝试添加存储库时得到了它。我想说这是另一个问题的主题,因为我不知道Ubuntu上的GPG密钥管理。最好在这方面寻求帮助。
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 JDK_HOME=/usr/lib/jvm/java-11-openjdk-amd64 pip install javabridge --user

Collecting javabridge
  Using cached https://files.pythonhosted.org/packages/68/87/0b016838c2a33b46b8775a3890150c93507931127cf62e9ccf27ac20db34/javabridge-1.0.17.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-QDCLar/javabridge/setup.py", line 396, in <module>
        ext_modules=ext_modules(),
      File "/tmp/pip-install-QDCLar/javabridge/setup.py", line 131, in ext_modules
        library_dirs = [os.path.dirname(jvm_so)]
      File "/usr/lib/python2.7/posixpath.py", line 122, in dirname
        i = p.rfind('/') + 1
    AttributeError: 'NoneType' object has no attribute 'rfind'
sudo apt install python2.7 python-numpy openjdk-8-jdk gcc
$ apt update
$ apt install software-properties-common
$ add-apt-repository ppa:webupd8team/java
$ apt install openjdk-8-jdk
$ update-alternatives --config java
$ JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 pip install javabridge --user
Installing collected packages: javabridge
  Running setup.py install for javabridge ... done
Successfully installed javabridge-1.0.17