Viewing 15 posts - 1 through 15 (of 23 total)
  • Author
    Posts
  • #47115
    bm.ffb
    Participant

    Wie einige scheinbar schon vor mir scheitere ich an der Nutzung des poi-converter (), da ich ihn auf meinem PC nicht installiert bekomme. Ich möchte damit vom mapsforge-poi-writer erstelle .poi Dateien in das Locus-Format (.db) konvertieren.
    Dazu verwende ich einen Windows PC (Win10, 64 bit, Python 3.9 ist installiert). Bei der Installation des osmium Packages hackt es dann. Es gibt eine lange Fehlermeldung.
    Deshalb hier die Frage: Hat jemand eine Schritt-für-Schritt Anleitung, um den poi-converter auf einem Windows PC zum Laufen zu bekommen?
    Ich würde freuen.
    Grüße

    #47124
    Avatar photoChristianK
    Keymaster

    Ich fahre alles was Phyton benötigt mitlerweile unter Win10/WSL/Debian, so auch Phyghtmap
    Phyton unter native Windows ist eine Krankheit, das funktioniert manchmal mit viel Aufwand- aber es hakt immer irgendwo.
    Sobald Librarys benötigt werden ist die Sache idR gelaufen.

    LG, Christian

    #47150
    Avatar photoChristianK
    Keymaster

    Hier im Anhang der leicht modifizierte Poi-Converter.
    Der von Github hat 2 kleine Bugs.

    Hier der Aufruf:
    wsl python3 %DIR_MAKES_WSL%poi_converter-master/poiconverter.py %DIR_MAPFOLDER_WSL%/%MAPNAME%_oam.osm.poi %DIR_MAPFOLDER_WSL%/%MAPNAME%_oam.osm.db -if poi -om create

    Die Folder musst Du halt anpassen

    LG, Christian

    BTW:
    Wenn Du Hilfe beim Setup von WSL hast helfe ich dir gerne, nur ist das alles pipifein bei Google erklärt.
    Du kannst auch von mir ein komplettes Debian-WSL-Image haben bei dem alles vorinstalliert ist.

    #47169
    bm.ffb
    Participant

    Danke für deine Infos.
    Für Phyghtmap auf nativem Windows habe ich eine Anleitung geschrieben (Anleitung). Damit läuft es bei mir stabil (Win10, Python 2.7).
    Für den poi_converter (und andere Scripts) habe ich Python 3.9 installiert. Mein Problem ist zunächst das “osmium” Package (oder brauch man das gar nicht?). Bis zur Ausführung des poi_converter komme ich noch gar nicht. Und nur für dieses Skript WSL-Debian zu installierten ist wahrscheinlich gut machbar, aber aufwendig.
    Für mich klang es hier so, dass du es zum Laufen gebracht hast (

    And finally 🙂 🙂
    Found Win64 sqlite.dll with rtree support !

    Here ist Guam.db – please could someone test if it’s OK – Thanks

    , März 2020). Aber du bist trotzdem jetzt zur Linux Umgebung gewechselt?
    Ich probiere es auf jeden Fall noch mal mit deinem modifizierten poi_converter. Danke dafür.
    Und wenn das nicht geht, versuche ich mich mal an dem Debian-WSL.
    Grüße
    Bernard

    #47171
    Avatar photoChristianK
    Keymaster

    Aber du bist trotzdem jetzt zur Linux Umgebung gewechselt?

    Ja, das ist wesentlich weniger Aufwand als Python unter Windows.
    Auch das Update des planet-files mit den daylies geht unter WSL einfach leichter.
    Die Shell-Scripts und Commands unter Linux sind auch wesentlich mächtiger und lassen sich unter Win problemlos transparent aus einem .bat aufrufen.
    SED etc haben unter win einfach keine echten Entsprechungen.
    Rsync (native unter WSL) fürs Web-Backup ist auch um Längen besser als FTP

    #47184
    bm.ffb
    Participant

    So, jetzt habe ich Debian-WSL installiert und habe eine Art Kommandozeilen Oberfläche. Und dann habe ich keine Ahnung, wie von dort weiter?
    Kann/muss ich dort Python installieren?

    Du kannst auch von mir ein komplettes Debian-WSL-Image haben bei dem alles vorinstalliert ist.

    Dann würde ich vielleicht auf dein Angebot zurückkommen.
    Grüße

    #47186
    Avatar photoChristianK
    Keymaster

    Und dann habe ich keine Ahnung, wie von dort weiter?

    Ohjee..
    Noch nie unter Linux/Unix/BSD gearbeitet?
    Das ist dann ein steiler Pfad.

    Ich lade dir das Image hoch.
    Importiere das nach WSL :
    https://www.windowscentral.com/how-import-windows-subsystem-linux-wsl-distribution-tar-file

    Ich gebe Dir Bescheid wenn der Dump auf GDrive zur Verfügung steht.

    #47188
    Avatar photoChristianK
    Keymaster

    Link ist per MAil unterwegs

    1 user thanked author for this post.
    #47192
    bm.ffb
    Participant

    Noch nie unter Linux/Unix/BSD gearbeitet?

    Nein. Ich würde mich aber als einen recht Computer-affinen Windows User bezeichnen.
    Vielen Dank für das Image. Der Download hat geklappt.

    #47194
    bm.ffb
    Participant

    Der Import deines Debian-WSL-Image scheint geklappt zu haben:
    Debain
    Die installierten Dateien befinden sich hier:
    Pfad zu Debian-WSL-Files
    Und der Inhalt dieses Verzeichnisses sieht so aus:
    Linux-Files?

    Jetzt müsste ich wahrscheinlich diesen Aufruf ausführen:

    wsl python3 %DIR_MAKES_WSL%poi_converter-master/poiconverter.py %DIR_MAPFOLDER_WSL%/%MAPNAME%_oam.osm.poi %DIR_MAPFOLDER_WSL%/%MAPNAME%_oam.osm.db -if poi -om create

    Aber:
    Muss dazu der poi_converter im WSL Verzeichnis installiert sein?
    Was ist also der Pfad %DIR_MAKES_WSL%?
    Muss die .poi Datei nun auch in dieses Verzeichnis? Was wäre dann der Pfad %DIR_MAPFOLDER_WSL%?

    Bei mir ist aktuell der poi_converter hier installiert: “C:/Python39/poi_converter-master/”. Und so dachte ich, dass für meine Test-poi Datei (TEST.poi, sie liegt im poi_converter Verzeichnis) die Eingabe in der PowerShell so aussehen sollte:
    wsl python3 C:/Python39/poi_converter-master/poiconverter.py C:/Python39/poi_converter-master/TEST.poi C:/Python39/poi_converter-master/TEST.db -if poi -om create
    Das kann aber nicht funktionieren, denn der Pfad wird nicht gefunden:
    python3: can't open file '/mnt/c/Users/bernard/C:/Python39/poi_converter-master/poiconverter.py': [Errno 2] No such file or directory

    Irgendwie undurchsichtig.
    Grüße
    Bernard

    #47207
    Avatar photoChristianK
    Keymaster

    Ich habe den POI-converter in einem Windows Verzeichnis installiert

    Aus
    m:\makes\poi_converter-master\poiconverter.py in dos
    wir dann im Aufruf über WSL:
    mnt\m\makes\poi_converter-master\poiconverter.py

    Nebenbei:
    Datein in C: Userverzeichnis zu hinterlegen ist keine gute idee.
    Die C:_Partition halte ich immer AUSSCHLIESSLICH für das Betriebssystem frei.
    Wenn Dir das OS abschmiert kannst Du das einfach neu aufsetzen ohne Eigenprogramme zu verlieren.
    Wenn Du alles in C:\user reinquetschst ist im Zweifelsfall alles kaputt.

    Weiters belege ich alles auf Variable.
    Es gibt eine Datei die nennt sich .oam_config in der alle pfade für dos/wsl hinterlegt sind (in meinem Fall wird diese Datei aus einem Spreadsheet geschrieben.

    DIR_MAIN_DOS=m:\mapsforge\
    DIR_MAIN_WSL=/mnt/m/mapsforge/
    DIR_OSMDATA_DOS=m:\osm_data\
    DIR_OSMDATA_WSL=/mnt/m/osm_data/
    DIR_OSMEXTRACTS_DOS=o:\osm_data\
    DIR_OSMEXTRACTS_WSL=/mnt/o/osm_data/
    DIR_MAKES_DOS=m:\makes\
    DIR_MAKES_WSL=/mnt/m/makes/
    DIR_HGT_DOS=o:\osm_srtm\hgt\
    DIR_HGT_WSL=/mnt/o/osm_srtm/hgt/
    DIR_PERLSCRIPTS_DOS=c:\perl\perl\site\bin\
    DIR_PERLSCRIPTS_WSL=/mnt/c/perl/perl/site/bin/
    DIR_OAM_WEBSITE_DOS=m:\oam_web\
    DIR_OAM_WEBSITE_WSL=/mnt/m/oam_web/
    DIR_TEMP_DOS=n:\oam_temp\
    DIR_TEMP_WSL=/mnt/n/oam_temp/
    DIR_MAPS_DOS=d:\oam_maps\maps\V5\
    DIR_MAPS_WSL=/mnt/d/oam_maps/maps/V5/
    DIR_POIS_DOS=d:\oam_maps\maps\poisV5\
    DIR_POIS_WSL=/mnt/d/oam_maps/maps/poisV5/
    DIR_MAPS_ZIP_DOS=d:\oam_maps\zip\V5\
    DIR_MAPS_ZIP_WSL=/mnt/d/oam_maps/zip/V5/
    DIR_POIS_ZIP_DOS=d:\oam_maps\zip\poisV5\
    DIR_POIS_ZIP_WSL=/mnt/d/oam_maps/zip/poisV5/
    DIR_MYCLIPBOUNDS_DOS=m:\osm_data\my_clipbounds\
    DIR_MYCLIPBOUNDS_WSL=/mnt/m/osm_data/my_clipbounds/
    DIR_SHAPES_LAND_DOS=m:\osm_data\shapes\land\
    DIR_SHAPES_LAND_WSL=/mnt/m/osm_data/shapes/land/
    DIR_OSMTOOLS_DOS=m:\tools\
    DIR_OSMTOOLS_WSL=/mnt/m/tools/
    DIR_OSMOSIS_DOS=m:\osmosis\
    DIR_OSMOSIS_WSL=/mnt/m/osmosis/

    In jedes Batch wird zuerst diese Datei eingelesen und man hat immer aktuelle pfade:

    @Echo off
    REM Hier werden die Steuervariablen eingelesen 
    for /f "delims=" %%x in (m:\makes\.oam_config) do (set "%%x")

    .. und auch alle sonstigen Variablen aus anderen parameterfiles.

    1 user thanked author for this post.
    #47222
    bm.ffb
    Participant

    Datein in C: Userverzeichnis zu hinterlegen ist keine gute idee.

    Da hast du natürlich Recht. Ich habe mich nur an die WSL Import Anleitung, die du mir genannt hast, gehalten. Und die haben den Import in das User-Verzeichnis installiert. Inzwischen habe ich mit “unregister” die Installation wieder entfernt und den Import in ein neues Verzeichnis auf meiner “Datenpartition” (D) gemacht. Nun liegt sie in
    D:\__APPs\Debian
    Mein Kartenbauverzeichnis (“_KARTENBAU\_TOOLS\”) liegt auch auf D. In dieses habe ich nun auch den poi_converter-master abgelegt. Damit wären meine Parameter wohl:

    DIR_MAKES_DOS=D:\_KARTENBAU\_TOOLS\
    DIR_MAKES_WSL=/mnt/D/_KARTENBAU/_TOOLS/

    Also habe ich versucht, den poi_converter auf eine TEST-Datei anzuwenden mit (in der PowerShell):
    wsl python3 /mnt/D/_KARTENBAU/_TOOLS/poi_converter-master/poiconverter.py /mnt/D/_KARTENBAU/_TOOLS/poi_converter-master/TEST.poi /mnt/D/_KARTENBAU/_TOOLS/poi_converter-master/TEST.db -if poi -om create
    Damit erhalte ich aber weiterhin den Fehler, dass die Datei wohl nicht gefunden werden kann:
    python3: can't open file '/mnt/D/_KARTENBAU/_TOOLS/poi_converter-master/poiconverter.py': [Errno 2] No such file or directory

    Oder stimmt das mit den “/” nicht? In dem Auszug aus deiner Parameter Datei verwendest du für WSL backshlash, aber in deinem Beispiel Python-Aufruf nicht?
    wsl python3 %DIR_MAKES_WSL%poi_converter-master/poiconverter.py %DIR_MAPFOLDER_WSL%/%MAPNAME%_oam.osm.poi %DIR_MAPFOLDER_WSL%/%MAPNAME%_oam.osm.db -if poi -om create

    Weiters belege ich alles auf Variablen.

    Das ist eine gute Idee. Bisher habe ich die Parameter immer am Anfang innerhalb meines Batchskriptes festgelegt.

    #47224
    Avatar photoChristianK
    Keymaster

    Slash für WSL
    Backslash für Dos

    WSL = Linux = alles ist CaseSensitiv – ev. liegt es daran
    mach mal ein WSL-Fenster auf und schau dir die struktur mit dem MC (MidnightCommander) an

    AHHHHHH, ich seh’s gerade….
    die driveletter sind klein zu schreiben (schau mal auf meine Parameterliste) , klar das WSL die Datei nicht findet
    (Linux ist CaseSensitive 🙂 , das ist zwar anfangs lästig hat aber massive Vorteile)

    Also /mnt/d/ | /mnt/c/ usw

    #47231
    bm.ffb
    Participant

    die driveletter sind klein zu schreiben

    OK. Habe ich nun geändert und komme genau einen Schritt weiter. Die Fehlermeldung lautet:

    Traceback (most recent call last):
    File “/mnt/d/_KARTENBAU/_TOOLS/poi_converter-master/poiconverter.py”, line 13, in <module>
    from poiconverter.database import Database
    File “/mnt/d/_KARTENBAU/_TOOLS/poi_converter-master/poiconverter/database.py”, line 4, in <module>
    import spatialite
    ModuleNotFoundError: No module named ‘spatialite’

    Das sollte aber doch eigentlich in deinem Image enthalten sein, oder?

    #47241
    Avatar photoChristianK
    Keymaster

    Das sollte aber doch eigentlich in deinem Image enthalten sein, oder?

    Ich fürchte ich bin hier auch Linux aufgesessen.
    Die Konfiguration müsste schon im Dump enthalten sein, aber unetr dem USer “biz”
    wenn du mit deinem user reingehst hast du IMO ein blankes Image.
    Nehme ich zumindest mal an.

    Macht aber nicht , einfach das ganze Zeugs nachinstallieren.

    https://gist.github.com/tdgunes/04b9962956dd043859f5

Viewing 15 posts - 1 through 15 (of 23 total)
  • You must be logged in to reply to this topic.