Autor Thema: Can't locate JSON/Parse.pm  (Gelesen 265 mal)

Online Darkrabbit

  • New Member
  • *
  • Beiträge: 36
Can't locate JSON/Parse.pm
« am: 15 September 2020, 17:51:41 »
Hallo zusammen,

nachdem ich nun den halben Tag nach einer Lösung gesucht habe, versuche ich es mal hier bei den Experten  ;D

Bekomme beim Einbinden folgenden Moduls diesen Fehler:

2020.09.15 17:34:49 1: reload: Error:Modul 99_myBMWUtilsPersonal deactivated:
 Can't locate JSON/Parse.pm in @INC (you may need to install the JSON::Parse module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at ./FHEM/99_myBMWUtilsPersonal.pm line 17.
BEGIN failed--compilation aborted at ./FHEM/99_myBMWUtilsPersonal.pm line 17.

Wie es da schon steht, soll man JSON installieren.
Dies habe ich jedoch nach diversen Anleitungen im Netz getan und es ist up-to-date:

JSON::Parse is up to date. (0.57)
Hat noch irgendjemand eine Idee?



Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1242
Antw:Can't locate JSON/Parse.pm
« Antwort #1 am: 15 September 2020, 18:04:19 »
Was sagt
perl --version?

Was sagt
perl -e "print qq(@INC)" ?

Natürlich auf dem System, auf dem du auch die FHEM-Installation laufen hast.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 22810
Antw:Can't locate JSON/Parse.pm
« Antwort #2 am: 15 September 2020, 18:32:11 »
Oder auch: es sind vermutlich 2 perl Versionen installiert, die eine hat JSON::Parse, die andere wird fuer FHEM verwendet.

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1242
Antw:Can't locate JSON/Parse.pm
« Antwort #3 am: 15 September 2020, 18:44:07 »
Oder auch: es sind vermutlich 2 perl Versionen installiert, die eine hat JSON::Parse, die andere wird fuer FHEM verwendet.

Genau das vermute ich auch.

Online Darkrabbit

  • New Member
  • *
  • Beiträge: 36
Antw:Can't locate JSON/Parse.pm
« Antwort #4 am: 15 September 2020, 18:55:33 »
perl --version

This is perl 5, version 28, subversion 1 (v5.28.1) built for arm-linux-gnueabihf-thread-multi-64int

perl -e "print qq(@INC)"

/home/pi/perl5/lib/perl5/5.28.1/arm-linux-gnueabihf-thread-multi-64int /home/pi/perl5/lib/perl5/5.28.1 /home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int /home/pi/perl5/lib/perl5 /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /home/pi/perl5/lib/perl5/5.28.0 /home/pi/perl5/lib/perl5/5.28.0/arm-linux-gnueabihf-thread-multi-64int /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base


Bzgl. der zwei Versionen: Wie stelle ich es korrekt ein, so dass ich auch auf JSON:Parse zugreifen kann? Also kann ich in der Perl-Version für FHEM das noch installieren? Oder kann ich FHEM sagen, dass ich die anderen Perl-Version nutzen will?
« Letzte Änderung: 15 September 2020, 19:22:41 von Darkrabbit »

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1242
Antw:Can't locate JSON/Parse.pm
« Antwort #5 am: 15 September 2020, 20:58:19 »
Zitat
/home/pi/perl5/lib/perl5/5.28.1/arm-linux-gnueabihf-thread-multi-64int /home/pi/perl5/lib/perl5/5.28.1 /home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int /home/pi/perl5/lib/perl5

Also die kommen auf meinen Pi nicht vor. Poste mal bitte den Output von:
export
(Das ist ein Shell-Befehl, also wirklich nur export).

Und bitte den Output von
find /home/pi/perl5 -iname '*json*'
« Letzte Änderung: 15 September 2020, 21:22:04 von Christoph Morrison »

Online Darkrabbit

  • New Member
  • *
  • Beiträge: 36
Antw:Can't locate JSON/Parse.pm
« Antwort #6 am: 15 September 2020, 21:05:33 »
export

declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
declare -x HOME="/home/pi"
declare -x LANG="de_DE.UTF-8"
declare -x LANGUAGE="de_DE.UTF-8"
declare -x LC_ALL="de_DE.UTF-8"
declare -x LOGNAME="pi"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd                                                                                                                                                                                                                                             =40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=3                                                                                                                                                                                                                                             4;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;                                                                                                                                                                                                                                             31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tz                                                                                                                                                                                                                                             o=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz                                                                                                                                                                                                                                             =01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.                                                                                                                                                                                                                                             tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;3                                                                                                                                                                                                                                             1:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio                                                                                                                                                                                                                                             =01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.e                                                                                                                                                                                                                                             sd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=0                                                                                                                                                                                                                                             1;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.t                                                                                                                                                                                                                                             if=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;                                                                                                                                                                                                                                             35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.o                                                                                                                                                                                                                                             gm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35                                                                                                                                                                                                                                             :*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=0                                                                                                                                                                                                                                             1;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm                                                                                                                                                                                                                                             =01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*                                                                                                                                                                                                                                             .m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00                                                                                                                                                                                                                                             ;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:"
declare -x MAIL="/var/mail/pi"
declare -x NO_AT_BRIDGE="1"
declare -x OLDPWD
declare -x PATH="/home/pi/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/us                                                                                                                                                                                                                                             r/bin:/sbin:/bin:/usr/local/games:/usr/games"
declare -x PERL5LIB="/home/pi/perl5/lib/perl5"
declare -x PERL_LOCAL_LIB_ROOT="/home/pi/perl5"
declare -x PERL_MB_OPT="--install_base \"/home/pi/perl5\""
declare -x PERL_MM_OPT="INSTALL_BASE=/home/pi/perl5"
declare -x PWD="/home/pi"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_CLIENT="192.168.1.184 57258 22"
declare -x SSH_CONNECTION="192.168.1.184 57258 192.168.1.34 22"
declare -x SSH_TTY="/dev/pts/1"
declare -x TERM="xterm"
declare -x TEXTDOMAIN="Linux-PAM"
declare -x USER="pi"
declare -x XDG_RUNTIME_DIR="/run/user/1000"
declare -x XDG_SESSION_CLASS="user"
declare -x XDG_SESSION_ID="c6"
declare -x XDG_SESSION_TYPE="tty"

find /home/pi/lib/perl5 -iname '*json*':

find: ‘/home/pi/lib/perl5’: Datei oder Verzeichnis nicht gefunden

 ???

Online Darkrabbit

  • New Member
  • *
  • Beiträge: 36
Antw:Can't locate JSON/Parse.pm
« Antwort #7 am: 15 September 2020, 21:09:33 »
Noch als Ergänzung:

find /home/pi/perl5 -iname '*json* (ohne /lib/)

/home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/auto/JSON
/home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/.meta/App-cpanminus-1.7044/MYMETA.json
/home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/.meta/App-cpanminus-1.7044/install.json
/home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/JSON
/home/pi/perl5/bin/validjson
/home/pi/perl5/man/man3/JSON::Tokenize.3pm
/home/pi/perl5/man/man3/JSON::Parse.3pm

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1242
Antw:Can't locate JSON/Parse.pm
« Antwort #8 am: 15 September 2020, 21:28:57 »
Ah ja, da hast du dein Problem:
declare -x PERL5LIB="/home/pi/perl5/lib/perl5"
hat dafür gesorgt, dass Perl das JSON::Parse wohl nach
/home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/JSON

installiert hat. Der User fhem kennt aber dieses Verzeichnis nicht, also kann er JSON::Parse auch nicht finden.

Erstmal solltest du klären, warum es diese Environment-Variable überhaupt gibt. Dann kannst du entscheiden wie du weiter vorgehst. Vermutlich wirst du die Variable entfernen und JSON::Parse neu installieren müssen.

Vielleicht solltest du dann gleich auf JSON::MaybeXS umsteigen. Für die Installation solltest du cpan-minus (cpanm) benutzen.

Online Darkrabbit

  • New Member
  • *
  • Beiträge: 36
Antw:Can't locate JSON/Parse.pm
« Antwort #9 am: 15 September 2020, 21:34:08 »
Danke erstmal für die Analyse  :)

Würde ich dann einfach mal machen, hab noch ein Backup zur Not  8)
Dann werde ich ja sehen ob irgendwas nicht mehr läuft und kann zur Not zurück und nochmal neu entscheiden.

Aber das ist ein Bereich in dem ich mich echt wenig auskenne, daher die Frage:

Wie kann ich die Variable ändern / löschen?
Wie lautet der genaue Befehl zum installieren von JSON::Parse?

Kann ich dem User fhem nicht auch einfach das Verzeichnis /home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/JSON irgendwie beibringen? Weil dort ist die parse.pm ja schon drin  ???

Danke schon mal...
« Letzte Änderung: 15 September 2020, 22:27:11 von Darkrabbit »

Online Darkrabbit

  • New Member
  • *
  • Beiträge: 36
Antw:Can't locate JSON/Parse.pm
« Antwort #10 am: 16 September 2020, 08:04:12 »
Hab´s hinbekommen:

Variablen aus .bashrc entfernt. Anschließend alles zum Thema Perl/JSON/Parse neu installiert.

Läuft jetzt! Danke! :)
Gefällt mir Gefällt mir x 1 Liste anzeigen