Blender Python Fehlermeldung

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Benutzeravatar
dieter1a
User
Beiträge: 75
Registriert: Montag 26. Februar 2007, 13:08
Wohnort: Bad Rothenfelde
Kontaktdaten:

Das hört sich für mich alles ziehmlich kompliziert an.
Meinst Du grob gesagt das Ganze mit einem Installer auf die Kiste packen?
Außerdem würde ich freiwillig nicht den Pfad zum IE vorgeben. Lieber erwarte ich die Installation eines Browsers den man sich mit IE holen könnte. ( Dafür soll IE ja ganz gut sein).
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Bevor man an den Installer gehen würde, muss man erst einmal sein Python Konstrukt konfigurierbar gestaltet bekommen.

Das hat auch wenig damit zu tun, sich darauf zu beruhen, der Installer würde schon alles machen.

Denn auch ein Installer kann nicht zaubern. Er "könnte" vielleicht den Pfad zum Browser ermitteln (oder von Benutzer via FileBrowser Element), jedoch findet sie dadurch immer noch nicht ihren weg automatisch in das Python Script und in die Strings für die BrowserPfade :roll: .

Bekommt man eine solche Konfigurierbarkeit manuell hin, kann man im Anschluss immer noch versuchen es noch ein wenig optimierter (dem Benutzer die Arbeit und den Gehirnschmaz abnehmen, würde ich es wohl eher nennen) in einen Installerprozess kleiden.

Eine einfache Methode (die man aber erst mit Blender und dessen Python Pakets testen müsste) wäre eine Datei vorzugeben, in der lediglich der Pfad zu webbrowser zu stehen hat.

Wenn man es mit BlenderPython kann, würde man diese dann öffnen, auslesen, und den Wert als Variable für den Aufruf verwenden.
Benutzeravatar
dieter1a
User
Beiträge: 75
Registriert: Montag 26. Februar 2007, 13:08
Wohnort: Bad Rothenfelde
Kontaktdaten:

Gute Idee.
Muß ich mal ausprobieren ob ich über die GameLogik dateien editieren, oder zumindestens lesen kann.
Blender besteht ja aus 2 Teilen. Da ist zum Einen die Game Engine und zum Anderen Blender und seine Module.
Mit from Blender import * oder so ähnlich komme ich an die Module zum editieren von Dateien heran. Aber das wird nicht mit in die Runtime übernommen.
Wenn ich mich da schlauer gemacht habe schreibe ich Dir, was machbar ist.
Benutzeravatar
dieter1a
User
Beiträge: 75
Registriert: Montag 26. Februar 2007, 13:08
Wohnort: Bad Rothenfelde
Kontaktdaten:

Mir ist da so eine Idee gekommen.
Da ich ja für meinen Chat und fürs Gästebuch einen Homeserver laufen habe, stehen mir ja für die Downloadgeschichte alle Türen offen.
Sowohl mit Python als auch mit PHP hätte ich quasi alle Möglichkeiten jedem die richtige Installation anzubieten.
Ich weiß zwar im Moment noch keinen konkreten Weg, aber den gibt's bestimmt.
Aber das ist, glaube ich, der sekundäre Teil meiner Arbeit, weil ich erstmal sehen muß mit welcher Blenderversion mein Tower noch lauffähig ist, weil in der Version, mit der er erstellt ist, kein Zugriff auf das os Modul möglich ist. Eine höhere Version wäre nicht für das ActiveX geeignet gewesen.
Wenn ich den Tower komplett neu schreiben muß, dreht sich mir schon jetzt der Magen um.
Aber besser ein Ende mit Schrecken, als ein Schrecken ohne Ende.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Blender bringt seinen eigenen Python-Interpreter mit und natuerlich die Blender-Python-Module. Es bringt keine Python-Standard-Library mit, um die zu benutzen, benoetigt man eine Python-Installation.

Um festzustellen, ob das Problem bei Blender liegt oder nicht, kann man natuerlich die ganzen Befehle einfach mal direkt in der Python-Shell eingeben.
Benutzeravatar
dieter1a
User
Beiträge: 75
Registriert: Montag 26. Februar 2007, 13:08
Wohnort: Bad Rothenfelde
Kontaktdaten:

Ich erstelle gerade einen Blender-Testraum um schrittweise die unterschiedlichsten Möglichkeiten ausprobieren zu können.
Die Blender.exe liegt in einem Verzeichnis mit Namen blend1 auf C:\.
Jetzt möchte ich zur Laufzeit der exe optional einen Webbrowser meiner Wahl benutzen, falls ich eine Web-Site anfordern sollte.
Dazu schlägt mir eine Tafel die unterschiedlichsten Browsernamen vor, von denen ich, sagen wir mal per Maus-klick, einen aussuchen kann.
Zugriff auf die Verzeichnisstruktur habe ich ja.
Wenn ich nun als Beispiel Fire Fox gewählt habe, soll per Python nachgesehen werden ob die firefox.exe existiert, und wo sie liegt.
Der Pfad soll dann an eine globale String-Variable der GameEngine übergeben werden, und bei jedem Webseitenaufruf wird dann Fire Fox benutzt.
Ich denke, das es mit os.path.walk() realisierbar wäre.
Die Suchfunktion habe ich schon benutzt, komme aber nicht wirklich weiter.
Hat jemand eventuell einen Scriptvorschlag oder einen Link zu einem funktionierenden Beispiel?

MfG dieter1a
Benutzeravatar
dieter1a
User
Beiträge: 75
Registriert: Montag 26. Februar 2007, 13:08
Wohnort: Bad Rothenfelde
Kontaktdaten:

Ich werde folgenden Code verwenden.
Allerdings ist der nicht platformunabhängig.
Ist das irgendwie zu bewerkstelligen?

Code: Alles auswählen

import os
def pf(arg, directory, names):
    if "firefox.exe" in names:
        print directory

os.path.walk("c:\\", pf, None)
Vielen Dank.

MfG dieter1a
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

dieter1a hat geschrieben:Allerdings ist der nicht platformunabhängig.
Genauso wenig wie funktionsfähig - Stell dir vor, der ist auf D: installiert. Oder es gibt die Festplatte C: gar nicht erst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
dieter1a
User
Beiträge: 75
Registriert: Montag 26. Februar 2007, 13:08
Wohnort: Bad Rothenfelde
Kontaktdaten:

Das ist alles berücksichtigt und wird im 3D-Raum geregelt.
Funktionieren tut das aber.
Benutzeravatar
dieter1a
User
Beiträge: 75
Registriert: Montag 26. Februar 2007, 13:08
Wohnort: Bad Rothenfelde
Kontaktdaten:

Die Zeile

Code: Alles auswählen

os.path.walk(String-Variable, pf, None)
wird über eine Stringvariable versorgt.
Da ich mich mit anderen Betriebssystemen nicht wirklich auskenne, würde ich gerne wissen was anstelle von C:\\ bei den unterschiedlichen Betriebssystemen dort eingetragen werden muß.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

dieter1a hat geschrieben:Da ich mich mit anderen Betriebssystemen nicht wirklich auskenne, würde ich gerne wissen was anstelle von C:\\ bei den unterschiedlichen Betriebssystemen dort eingetragen werden muß.
Versuchs mal mit Root, ``/``, dann musst du aber nach ``firefox``, ``firefox-bin`` oder ``iceweasel`` suchen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
dieter1a
User
Beiträge: 75
Registriert: Montag 26. Februar 2007, 13:08
Wohnort: Bad Rothenfelde
Kontaktdaten:

Vielen Dank,
ich werde es testen lassen, sobald ich den Testraum fertig habe, da ich selber kein Linux installiert habe.
Eine Betriebssystemabfrage ist ja kein Problem.

MfG dieter1a
BlackJack

@Leonidas: Ich glaube wenn ich ein Programm benutze das ab '/' nach einem anderen Programm sucht, bekäme ich Lust den Programmierer zu erwürgen. ;-)
Benutzeravatar
dieter1a
User
Beiträge: 75
Registriert: Montag 26. Februar 2007, 13:08
Wohnort: Bad Rothenfelde
Kontaktdaten:

Nochmals vielen Dank an alle, die mich mit Ihrem Rat weitergebracht haben.
Den 3D-Testraum habe ich nun fertig, und er kann von Jedermann mal ausprobiert werden.
Leider habe ich keine Linuxanwender gefunden, die ein gesteigertes Interesse daran haben die ganze Sache auch für Ihr Betriebssystem kompatibel zu machen.
Ich für meinen Teil kann jetzt sagen IE ade.
Falls jemand Interesse daran hat sich den 3D-Raum mal anzuschauen, kann er sich unter nachfolgendem Link das Rararchiv blend1.rar downloaden und den Ordner blend1 irgendwohin entpacken.
Anschließend kann in dem Ordner blend1 die testraum241.exe gestartet, und volle Interaktivität ausprobiert werden.
Keine Angst, die exe macht nichts schlimmes. Sowas kann ich noch garnicht. (Will ich auch nicht können)
Man kann aus dem 3D-Raum das www besuchen, oder durch Tastatureingabe Aktionen im 3D-Raum manipulieren.
Klappt aber wie gesagt nur (noch) bei IBM kompatiblen Rechnern.
Die Browserinitialisierung kann jenachdem wieviel zwischen c:\ und der Browser.exe abgespeichert wird etwas dauern.
Ist ja auch nur ein Testraum.
Auch darf die Groß- Kleinschreibung der Browser.exe nicht verändert worden sein.

Hier der Link:

http://www.3dpowertower.de/blender/blend1.rar

Mit freundlichen Grüßen dieter1a
Antworten