tabulapdf icon indicating copy to clipboard operation
tabulapdf copied to clipboard

Installation problem, non-zero exit status

Open markhwhiteii opened this issue 7 years ago • 4 comments

I am on macOS Seirra 10.12.5. I have installed Java (per the link on the README), and I have installed the rJava package. Here is what I get when I try to install using ghit and devtools:

> ghit::install_github(c("ropensci/tabulizerjars", "ropensci/tabulizer"), verbose=TRUE)
Parsing reponame for 'ropensci/tabulizerjars'...
Creating local git repository for tabulizerjars in /var/folders/t8/fxx2gfc944l1r5y4mv78_qfr0000gn/T//Rtmp8mvpbu/tabulizerjars176c645d66634...
Checking out package tabulizerjars to local git repository...
[new]     c6cc40e055d3f92c4e96 refs/remotes/github/master
[new]     8e97b66b202b72e2d3b8 refs/remotes/github/tabula1.0.0
[new]     49e8e460fd627b6b05db refs/tags/v0.8.0
[new]     9d4ad56ff7efa2f15560 refs/tags/v0.9.0
[new]     063903e22684b86ad1e5 refs/tags/v0.9.1
[new]     e472789f3d7f3e3e7a6b refs/tags/v0.9.2
[new]     8cd728692a47868b4fff refs/tags/v1.0.1
Adding metadata to DESCRIPTION for package tabulizerjars...
Reading package metadata for 'ropensci/tabulizerjars'...
Building package tabulizerjars (0.9.2)...

Creating internal package repository in /var/folders/t8/fxx2gfc944l1r5y4mv78_qfr0000gn/T//Rtmp8mvpbu/ghitdrat/src...
Writing PACKAGES file for internal repository...
Writing package tabulizerjars to internal repository...
Parsing reponame for 'ropensci/tabulizer'...
Creating local git repository for tabulizer in /var/folders/t8/fxx2gfc944l1r5y4mv78_qfr0000gn/T//Rtmp8mvpbu/tabulizer176c62cc322a7...
Checking out package tabulizer to local git repository...
[new]     2fedf7ad935235bc211f refs/remotes/github/badge-add
[new]     89fdfba9082e4ec9d4df refs/remotes/github/master
Adding metadata to DESCRIPTION for package tabulizer...
Reading package metadata for 'ropensci/tabulizer'...
Installing 'Suggests' packages for 'tabulizer': graphics, grDevices, shiny, miniUI, testthat, knitr
Building package tabulizer (0.1.24)...

Using internal package repository in /var/folders/t8/fxx2gfc944l1r5y4mv78_qfr0000gn/T//Rtmp8mvpbu/ghitdrat/src...
Writing PACKAGES file for internal repository...
Writing package tabulizer to internal repository...
Installing packages tabulizerjars, tabulizer and 'Depends', 'Imports', 'LinkingTo'
system (cmd0): /Library/Frameworks/R.framework/Resources/bin/R CMD INSTALL
foundpkgs: tabulizerjars, tabulizer, //var/folders/t8/fxx2gfc944l1r5y4mv78_qfr0000gn/T//Rtmp8mvpbu/ghitdrat/src/contrib/tabulizerjars_0.9.2.tar.gz, //var/folders/t8/fxx2gfc944l1r5y4mv78_qfr0000gn/T//Rtmp8mvpbu/ghitdrat/src/contrib/tabulizer_0.1.24.tar.gz
files: //var/folders/t8/fxx2gfc944l1r5y4mv78_qfr0000gn/T//Rtmp8mvpbu/ghitdrat/src/contrib/tabulizerjars_0.9.2.tar.gz, 
	//var/folders/t8/fxx2gfc944l1r5y4mv78_qfr0000gn/T//Rtmp8mvpbu/ghitdrat/src/contrib/tabulizer_0.1.24.tar.gz
* installing *source* package ‘tabulizerjars’ ...
** R
** inst
** preparing package for lazy loading
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
  Reason: image not found
ERROR: lazy loading failed for package ‘tabulizerjars’
* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/tabulizerjars’
ERROR: dependency ‘tabulizerjars’ is not available for package ‘tabulizer’
* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/tabulizer’

The downloaded source packages are in
	‘/private/var/folders/t8/fxx2gfc944l1r5y4mv78_qfr0000gn/T/Rtmp8mvpbu/downloaded_packages’
ropensci/tabulizerjars     ropensci/tabulizer 
                    NA                     NA 
Warning messages:
1: In utils::install.packages(to_install, type = type, repos = repos,  :
  installation of package ‘tabulizerjars’ had non-zero exit status
2: In utils::install.packages(to_install, type = type, repos = repos,  :
  installation of package ‘tabulizer’ had non-zero exit status
> devtools::install_github(c("ropensci/tabulizerjars", "ropensci/tabulizer"), verbose=TRUE)
Downloading GitHub repo ropensci/tabulizerjars@master
from URL https://api.github.com/repos/ropensci/tabulizerjars/zipball/master
Installing tabulizerjars
'/Library/Frameworks/R.framework/Resources/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet CMD INSTALL  \
  '/private/var/folders/t8/fxx2gfc944l1r5y4mv78_qfr0000gn/T/Rtmp8mvpbu/devtools176c6275be0f8/ropensci-tabulizerjars-c6cc40e'  \
  --library='/Library/Frameworks/R.framework/Versions/3.4/Resources/library' --install-tests 

* installing *source* package ‘tabulizerjars’ ...
** R
** inst
** preparing package for lazy loading
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
  Reason: image not found
ERROR: lazy loading failed for package ‘tabulizerjars’
* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/tabulizerjars’
Installation failed: Command failed (1)
Downloading GitHub repo ropensci/tabulizer@master
from URL https://api.github.com/repos/ropensci/tabulizer/zipball/master
Installing tabulizer
Downloading GitHub repo ropensci/tabulizerjars@master
from URL https://api.github.com/repos/ropensci/tabulizerjars/zipball/master
Installing tabulizerjars
'/Library/Frameworks/R.framework/Resources/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet CMD INSTALL  \
  '/private/var/folders/t8/fxx2gfc944l1r5y4mv78_qfr0000gn/T/Rtmp8mvpbu/devtools176c670a216a9/ropensci-tabulizerjars-c6cc40e'  \
  --library='/Library/Frameworks/R.framework/Versions/3.4/Resources/library' --install-tests 

* installing *source* package ‘tabulizerjars’ ...
** R
** inst
** preparing package for lazy loading
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
  Reason: image not found
ERROR: lazy loading failed for package ‘tabulizerjars’
* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/tabulizerjars’
Installation failed: Command failed (1)
'/Library/Frameworks/R.framework/Resources/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet CMD INSTALL  \
  '/private/var/folders/t8/fxx2gfc944l1r5y4mv78_qfr0000gn/T/Rtmp8mvpbu/devtools176c61503d64a/ropensci-tabulizer-89fdfba'  \
  --library='/Library/Frameworks/R.framework/Versions/3.4/Resources/library' --install-tests 

ERROR: dependency ‘tabulizerjars’ is not available for package ‘tabulizer’
* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/tabulizer’
Installation failed: Command failed (1)

I've looked through the previous, closed issues. I tried running R CMD javareconf in the terminal, with this error:

Java version     : 1.6.0_65
Java home path   : /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
System Java on macOS

trying to compile and link a JNI program 
detected JNI cpp flags    : -I/System/Library/Frameworks/JavaVM.framework/Headers
detected JNI linker flags : -framework JavaVM
clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/System/Library/Frameworks/JavaVM.framework/Headers  -I/usr/local/include   -fPIC  -Wall -g -O2  -c conftest.c -o conftest.o
conftest.c:1:10: fatal error: 'jni.h' file not found
#include <jni.h>
         ^
1 error generated.
make: *** [conftest.o] Error 1
Unable to compile a JNI program


JAVA_HOME        : /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Java library path: 
JNI cpp flags    : 
JNI linker flags : 
Updating Java configuration in /Library/Frameworks/R.framework/Resources
Done.

markhwhiteii avatar Sep 02 '17 16:09 markhwhiteii

This could also be due more to Java itself on my computer. I tried to get tabula-py to do this, and I got the error after running their function read_pdf:

CalledProcessError: Command '['java', '-jar', '/anaconda/lib/python3.6/site-packages/tabula/tabula-1.0.1-jar-with-dependencies.jar', '--pages', '1', '--guess', '~/Users/markiiwhite/Documents/Factbook/results/pdfs/2016_General_Election_Official_Results.pdf']' returned non-zero exit status 1.
---------------------------------------------------------------------------
CalledProcessError                        Traceback (most recent call last)
<ipython-input-120-08022bfc6ccf> in <module>()
----> 1 df = tabula.read_pdf(path)
/anaconda/lib/python3.6/site-packages/tabula/wrapper.py in read_pdf(input_path, output_format, encoding, java_options, pandas_options, multiple_tables, **kwargs)
     73 
     74     try:
---> 75         output = subprocess.check_output(args)
     76     finally:
     77         if is_url:
/anaconda/lib/python3.6/subprocess.py in check_output(timeout, *popenargs, **kwargs)
    334 
    335     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
--> 336                **kwargs).stdout
    337 
    338 
/anaconda/lib/python3.6/subprocess.py in run(input, timeout, check, *popenargs, **kwargs)
    416         if check and retcode:
    417             raise CalledProcessError(retcode, process.args,
--> 418                                      output=stdout, stderr=stderr)
    419     return CompletedProcess(process.args, retcode, stdout, stderr)
    420 
CalledProcessError: Command '['java', '-jar', '/anaconda/lib/python3.6/site-packages/tabula/tabula-1.0.1-jar-with-dependencies.jar', '--pages', '1', '--guess', '~/Users/markiiwhite/Documents/Factbook/results/pdfs/2016_General_Election_Official_Results.pdf']' returned non-zero exit status 1.

Any ideas?

markhwhiteii avatar Sep 02 '17 16:09 markhwhiteii

I have the same issue, right down to the details. Will my adding this bump up its visibility? I really need a solution, or I have a lot of manual work ahead of me this weekend!

UPDATE: I just tried R CMD javareconf, and that actually worked for me.

mvabl-steve avatar Sep 15 '17 21:09 mvabl-steve

This worked for me, from http://paulklemm.com/blog/2017-02-12-fix-onload-failed-rjava-macos/:

dyn.load(paste0(system2('/usr/libexec/java_home', stdout = TRUE), '/jre/lib/server/libjvm.dylib'))

# rJava should load
library(rJava)

devtools::install_github(c("ropensci/tabulizerjars"))
devtools::install_github(c("ropensci/tabulizer"))

andybega avatar Oct 19 '17 18:10 andybega

I encountered the same errors. I running macOS Sierra 10.12.6 and Rstudio v1.1.383.

I installed ghit and rJava, but didn't get very far when I loaded rJava. (I encountered the .onLoad failed in loadNamespace() for 'rJava' error.)

In the comment by @andybega, there is a link to the following post http://paulklemm.com/blog/2017-02-12-fix-onload-failed-rjava-macos/, which addresses the rJava load fail. The dyn.load(...) command didn't work initially so I had to install the latest version of Java (link in tabularizer instructions) and the Java Development Kit (link in blog post).

Once Java and JDK were installed, I ran the code at the end of the post.

dyn.load(paste0(system2('/usr/libexec/java_home', stdout = TRUE), '/jre/lib/server/libjvm.dylib'))

Then I installed and loaded tabularizer.

ghit::install_github(c("ropensci/tabulizerjars", "ropensci/tabulizer"), verbose = T)
library(tabulizer)

In summary, installing the latest versions of Java and Java Development Kit seemed to do the trick. Hope this helps!

davidruvolo51 avatar Nov 13 '17 02:11 davidruvolo51