Synology-Forum.nl
Packages => Officiƫle Packages => Python (Versie van Synology) => Topic gestart door: harry440 op 31 mei 2018, 21:12:04
-
Update naar DSM 6.1.7-15284 uitgevoerd, nu ineens de onderstaande melding bij uitvoeren van mijn Python script:
/volume1/pyserial/env/bin/python: error while loading shared libraries: libpython3.4m.so.1.0: cannot open shared object file: No such file or directory
Wie weet raad?
-
Waarschijnlijk is je virtual environment voor pyserial niet goed opgezet.
-
Zou dit dan na de update teniet zijn gedaan? Daavoor werkte alles prima. Gewoon weer opnieuw opzetten?
-
Laat eens zien wat er in de folder /volume1/pyserial/env/bin staat.
Overigens als je het toch opnieuw gaat/moet opzetten zou ik die pyserial gewoon net als alle applicaties in de ""volume1/@appstore" folder zetten en niet in "/volume1/" maar dit terzijde.
-
Hierbij.
-
Ga eens in die folder staan en geef het commando
python
Dan zie je welke versie hij start.
Daarna kijk je welke modules hij kan laden en of er foutmeldingen komen
Dat doe je vanuit de net opgestarte python shell met het command:
help('modules')
En verder is het van belang te kijken hoe python wordt opgestart.
Als het script dat je gebruikt alleen het python commando gebruikt, dus zonder path of zonder eerst naar deze folder te gaan dan wordt de python opgestart die in het path staat en dat is niet de python die jouw pyserial verwacht.
-
Allereerst bedankt voor de hulp! :thumbup:
Python 2.7.12 (default, Mar 22 2018, 06:58:41)
De modules worden geladen zonder foutmeldingen.
-
Moet pyserial niet onder python 3 draaien?
En de python die daar aangeroepen wordt is die python 2.7 die met DSM wordt meegeleverd en dat is een geheel uitgeklede python versie die eigenlijk alleen voldoet aan de dingen die DSM zelf nodig heeft.
-
Dus het lijkt erop dat Python start ipv Python3? Hoe krijg ik dat omgekeerd? Ik heb zowel Python als Python3 geinstalleerd op de DSM, dit werkte altijd prima. Als ik het commando 'python3' ingeef dan wordt 'command not found' weergegeven.
-
Ik denk dat je de gevraagde test niet goed hebt uitgevoerd.
Ik vroeg ga in de folder /volume1/pyserial/env/bin staan en voor het python commando uit.
Daar staat namelijk een python die naar python 3 verwijst als het goed is.
Als alternatief kun je even het hele path gebruiken zijnde
/volume1/pyserial/env/bin/python
Als je het python3 commando geeft en je krijgt de melding "command not foud" zou ik python 3 eens verwijderen en opnieuw installeren.
Je moet dan wel die van Synology nemen en niet die van de SynoCommunity.
-
Als ik in de directory ga staan en dan het python commando geef, dan wordt Python 2.7.12 gestart.
Als ik /volume1/pyserial/env/bin/python ingeef dan "error while loading shared libraries: libpytho n3.4m.so.1.0: cannot open shared object file: No such file or directory"
Ik zal Python3 eens opnieuw installeren vanuit DSM.
-
Ok ik denk dat dan het probleem wel opgelost zal zijn.
Wel die van Synology installeren.
En als het dan nog niet werkt moet je pyserial verwijderen en opnieuw installeren.
Zo'n virtual environment maakt een binary aan die de geinstalleerde python aanroept.
Ik weet niet precies hoe dat gaat maar misschien heeft hij nu de verkeerde verwijzing.
-
Python opnieuw geinstalleerd maar helaas.
Hoe kan ik pyserial verwijderen?
Ik heb een beschrijving hoe ik het weer opnieuw kan installeren.
-
Ligt eraan hoe het geinstalleerd is.
Weet je nog hoe je dat gedaan hebt?
-
Ja dat was deze post:
https://www.synology-forum.nl/overige-3rd-party-packages/pyserial2-7-werkt-niet-meer-na-update-python/new/?topicseen#new
Ik heb Python2 en Python3 (beiden nodig) opnieuw geinstalleerd via SynoCommunity.
Bij uitvoeren commando
"/usr/local/python3/bin/python3 /usr/local/python3/bin/virtualenv /volume1/@appstore/pyserial/env"
Krijg ik aangehangen screenshot.
Als amateur baal ik dat na een DSM update de hele zaak in de war is.
Python2 en Python3 moeten beiden draaien en Pyserial. Hoe krijg ik de zaak weer aan de gang?
-
Dat commando kan toch helemaal niets doen?
Als je nu gewoon het volgende commando geeft:
/volume1/pyserial/env/bin/python3
Of als je pyserial in de appstore gezet hebt.
/volume1/@appstore/pyserial/env/bin/python3
Dan moet hij python 3 opstarten en krijg je een python prompt.
Krijg je die niet dan moet je pyserial opnieuw installeren.
De oude kun je dan gewoon verwijderen door de folder weg te gooien.
Als python3 wel gewoon opstart, kun je met het volgende commando zien of pyserial in je virtual environment geinstalleerd staat:
help('modules')
-
Het is eindelijk opgelost, bedankt voor de hulp.
Mijn laatste bericht gisteren klopte niet, ik was niet ingelogd als root maar als admin (in de haast).
Had de venv al verwijderd en pyserial installatie is gelukt. Daarna moest mysql-connector-python ook nog en dat lukte goed via pip. Ik kan nu mijn zonnepanelen weer uitlezen in mijn mysql database.
-
:thumbup: