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
BeaEngine in Python nutzen
@seux: Die muss in einem Verzeichnis in `sys.path` liegen, zum Beispiel im aktuellen Arbeitsverzeichnis.
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:
Was habe ich jetzt falsch gemacht?
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
@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.
also die DLL sind vorkompiliert mitgeliefert. Die Struktur sieht wie folgt aus:
sowas wie setup.py ist da nicht mit dabei
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
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
@seux: Du wirst mit ``pip`` sicher nicht die *.so installiert haben. Die musst Du Dir schon vom Anbieter holen und selber installieren.