Seite 1 von 1

BeaEngine in Python nutzen

Verfasst: Mittwoch 21. August 2013, 11:24
von seux
Hallo zusammen,

ich würde gerne die BeaEngine in Python nutzen. Ich hab mir dazu die BeaEngine library win x64 von deren homepage runtergeladen, weiß jetzt aber nicht, wie ich die nutzen kann. Wenn ich das Archiv entpacke, gibt es dort einen Ordner headers mit einer BeaEnginePython.py Datei. Ich weiß aber nicht, wie ich die Datei in die Python Shell importieren kann.

Ich wäre euch sehr dankbar, wenn ihr mir da helfen könntet. Bin mit Python noch nicht so vertraut.

vg, seux

Re: BeaEngine in Python nutzen

Verfasst: Mittwoch 21. August 2013, 12:41
von BlackJack
@seux: Die muss in einem Verzeichnis in `sys.path` liegen, zum Beispiel im aktuellen Arbeitsverzeichnis.

Re: BeaEngine in Python nutzen

Verfasst: Mittwoch 21. August 2013, 15:59
von seux
okay, ich hab das jetzt mal so gemacht, dass ich den Pfad zu sys.path hinzufüge, bekomme aber folgenden Fehler, wenn ich das nun importieren möchte:

Code: Alles auswählen

import sys
sys.path += ['D:\\Libraries\\Python\\beaengine\\headers']
from BeaEnginePython import *

Code: Alles auswählen

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    from BeaEnginePython import *
  File "D:\Libraries\Python\beaengine\headers\BeaEnginePython.py", line 277, in <module>
    __module = WinDLL('BeaEngine')
  File "C:\Python27\lib\ctypes\__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] Das angegebene Modul wurde nicht gefunden
Was habe ich jetzt falsch gemacht?

Re: BeaEngine in Python nutzen

Verfasst: Mittwoch 21. August 2013, 17:18
von snafu
Da scheint ein C-Modul benutzt zu werden. Hast du das denn vorab kompiliert? Gibt es keine `setup.py` oder sonstige Installationsmöglichkeiten?

Re: BeaEngine in Python nutzen

Verfasst: Mittwoch 21. August 2013, 17:21
von BlackJack
@seux: Jetzt muss die DLL noch irgendwo liegen wo sie gefunden wird. Da bin ich bei Windows im Moment überfragt wo standardmässig überall nach DLLs gesucht wird.

Re: BeaEngine in Python nutzen

Verfasst: Mittwoch 21. August 2013, 19:17
von seux
also die DLL sind vorkompiliert mitgeliefert. Die Struktur sieht wie folgt aus:

Code: Alles auswählen

beaengine/
├── headers
│   ├── BeaEngineDelphi32.pas
│   ├── BeaEngineDelphi64.pas
│   ├── BeaEngineFasm32.inc
│   ├── BeaEngineFasm64.inc
│   ├── BeaEngineGoAsm32.inc
│   ├── BeaEngineGoAsm64.inc
│   ├── BeaEngine.h
│   ├── BeaEngineMasm32.inc
│   ├── BeaEngineMasm64.inc
│   ├── BeaEngineNasm32.inc
│   ├── BeaEngineNasm64.inc
│   ├── BeaEnginePureBasic32.pb
│   ├── BeaEnginePureBasic64.pb
│   ├── BeaEnginePython.py
│   ├── BeaEnginePython.pyc
│   ├── bea_test.py
│   └── Includes
│       ├── basic_types.h
│       └── export.h
├── Warning_for_C_coders.txt
└── Win64
    ├── Dll
    │   ├── BeaEngine64.dll
    │   ├── BeaEngine64.exp
    │   ├── BeaEngine64.lib
    │   ├── BeaEngineCheetah64.dll
    │   ├── BeaEngineCheetah64.exp
    │   └── BeaEngineCheetah64.lib
    └── Lib
        ├── BeaEngine64.lib
        └── BeaEngineCheetah64.lib
sowas wie setup.py ist da nicht mit dabei

Re: BeaEngine in Python nutzen

Verfasst: Donnerstag 22. August 2013, 10:57
von seux
Noch eine Ergänzung: Ich hab es jetzt auch mal bei Linux ausprobiert, indem ich BeaEnginePython über pip installiert hab. Aber beim importieren bekomme ich trotzdem ungefähr den gleichen Fehler, wie auch bei Windows

Code: Alles auswählen

from BeaEnginePython import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/BeaEnginePython.py", line 277, in <module>
    __module = CDLL('libBeaEngine.so')
  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libBeaEngine.so: cannot open shared object file: No such file or directory

Re: BeaEngine in Python nutzen

Verfasst: Donnerstag 22. August 2013, 12:22
von BlackJack
@seux: Du wirst mit ``pip`` sicher nicht die *.so installiert haben. Die musst Du Dir schon vom Anbieter holen und selber installieren.

Re: BeaEngine in Python nutzen

Verfasst: Donnerstag 22. August 2013, 13:33
von seux
Okay, es funktioniert jetzt. Ich hab einen Installer für Windows gefunden. Damit hat es ohne Probleme geklappt. :D