[Python Frage] Python aus Clienten importieren

04/17/2016 02:25 Kira Mikami#1
Guten Tag.

Ich habe eine kleine Frage. Da ich es selber nicht verstehe und mit Python einfach nichts kann, frage ich mal wieder euch lieben, da ihr mir bis jetzt immer geholfen habt. Ich möchte meinen Skript im Spiel testen ohne die .epk und .eix dauernd zu verpacken/entpacken. Deshalb möchte in in die Game.py in der root.epk eine Art Pfad importieren. Das heißt, ich will es ungefähr so machen:

[Only registered and activated users can see links. Click Here To Register...]

Natürlich ist dies nur ein Beispiel, damit ihr wisst, was ich meine. Wie ich bereits sagte, habe ich davon keinerlei Ahnung. Es wäre toll, wenn mir jemand verraten könnte, wie genau man dies nun tut.
04/17/2016 11:33 .yorliK#2
Pack die game.py einfach in das Hauptverzeichnis deines Clienten. Dann kannst du Änderungen vornehmen, allerdings musst du jedes Mal den Client neustarten.
04/17/2016 12:14 .K0rí#3
Nutz doch das Tutorial dann kannst du alles ohne neustarten ingame bearbeiten :
[Only registered and activated users can see links. Click Here To Register...]
04/18/2016 08:46 Kira Mikami#4
Danke euch beiden, kannte ich noch nicht. Dennoch möchte ich die .py gerne aus meinem Ordner "Settings" laden. Das Livedevelopment Zeugs baue ich auch ein.

Also? Jemand eine Idee?
04/18/2016 14:32 .K0rí#5
So 2 Möglichkeiten hast du:

Variante 1:

Code:
import sys
sys.path.append('C:/full/path')
import deinedatei
from deinedatei import x
Da gehst du in den ordner und kannst die Python datein aus dem Ordner Importen.

Variante 2:

Code:
import imp
util = imp.load_source('util', 'C:/full/path/foo/util.py')
import util
Da bin ich mir aber nicht ganz sicher wegen dem Import also da müsstest du schauen.


Ich hoffe ich konnte helfen
04/18/2016 23:33 Kira Mikami#6
Quote:
Originally Posted by .K0rí View Post
So 2 Möglichkeiten hast du:

Variante 1:

Code:
import sys
sys.path.append('C:/full/path')
import deinedatei
from deinedatei import x
Da gehst du in den ordner und kannst die Python datein aus dem Ordner Importen.

Variante 2:

Code:
import imp
util = imp.load_source('util', 'C:/full/path/foo/util.py')
import util
Da bin ich mir aber nicht ganz sicher wegen dem Import also da müsstest du schauen.


Ich hoffe ich konnte helfen
Funktioniert leider beides nicht.

Erste Variante habe ich so genutzt:

Code:
import sys
sys.path.append('D:\Metin2 Development')
import MeinScript
from MeinScript import x
04/20/2016 02:25 Kira Mikami#7
Push
04/20/2016 15:55 xGr33n#8
[Only registered and activated users can see links. Click Here To Register...]
PHP Code:
import imp
m2pyC 
imp.load_source('m2pyC.py''K:/Metin2 Dev/m2pyC.py')#works also:#imp.load_source('m2pyC', 'K:/Metin2 Dev/m2pyC.py')
#use m2pyC 
04/20/2016 16:04 .K0rí#9
[Only registered and activated users can see links. Click Here To Register...]

ansich funkt das auch so oder du machst es so :

[Only registered and activated users can see links. Click Here To Register...]

mfg
04/20/2016 16:14 Poccix#10
Quote:
Originally Posted by .K0rí View Post
[Only registered and activated users can see links. Click Here To Register...]

ansich funkt das auch so oder du machst es so :

[Only registered and activated users can see links. Click Here To Register...]

mfg
Nimmt sys.path.append nicht ab Root Verzeichnis (im Metin2 Clienten).

Liebe Grüße :)
04/20/2016 22:28 Kira Mikami#11
Ich verstehe dies leider überhaupt nicht.
Ich habe alles in einer einzigen Datei drinnen, welches in der Game.py geladen wird. Die Datei heißt: "MeinScript.py". Wenn ich das jetzt mache, was ihr mir in den Bildern zeigt, wie sollte es mir dann helfen? Könnt ihr mir das vielleicht erklären, damit ich es nachvollziehen kann? Ich mag es, gleichzeitig dazu zu lernen.

Muss ich ebenfalls das Terminal nutzen, oder kann ich es einfach beim Game.py in den Import hinzufügen?
04/23/2016 11:27 Kira Mikami#12
Push.

Es tut mir leid, falls dies für euch das einfachste auf der Welt ist. Das glaube ich euch sogar aufs Wort. Dennoch habe ich tatsächlich kaum Ahnung von Python, verstehe aber aus irgendeinem Grund, teilweise die Logik dahinter. Es wäre super, wenn ihr es mir erklären könnten. Auch, warum das Terminal nötig ist. Das würde mich mehr als nur freuen. Am besten auch alles genau erklären. Wieso, weshalb, warum.
04/23/2016 15:18 xGr33n#13
Quote:
Originally Posted by Kira Mikami View Post
Push.

Es tut mir leid, falls dies für euch das einfachste auf der Welt ist. Das glaube ich euch sogar aufs Wort. Dennoch habe ich tatsächlich kaum Ahnung von Python, verstehe aber aus irgendeinem Grund, teilweise die Logik dahinter. Es wäre super, wenn ihr es mir erklären könnten. Auch, warum das Terminal nötig ist. Das würde mich mehr als nur freuen. Am besten auch alles genau erklären. Wieso, weshalb, warum.
Das "Terminal" ist nur zum zeigen dass es funktioniert.

Du ersetzt einfach den import von deinem Modul durch den Codeschnipsel.

Beispielsweise wird aus:
PHP Code:
import m2pyC 
folgendes:
PHP Code:
import imp
m2pyC 
imp.load_source('m2pyC''K:/Metin2 Dev/m2pyC.py'
04/23/2016 16:36 Kira Mikami#14
Quote:
Originally Posted by byte xGr33n View Post
Das "Terminal" ist nur zum zeigen dass es funktioniert.

Du ersetzt einfach den import von deinem Modul durch den Codeschnipsel.

Beispielsweise wird aus:
PHP Code:
import m2pyC 
folgendes:
PHP Code:
import imp
m2pyC 
imp.load_source('m2pyC''K:/Metin2 Dev/m2pyC.py'
Folgendes habe ich nun genutzt:

Code:
import imp
m2pyC = imp.load_source('m2pyC', 'D:\m2pyC.py')
Und die Datei im Pfad heißt nun nicht mehr "Meinscript" sondern "m2pyC.py".
Der Client stürzt ab. Den Import habe ich in die Game.py geschrieben.

Ich weiß, es nervt euch langsam. Dafür entschuldige ich mich.

Sysrr:
04/23/2016 16:44 xGr33n#15
Was steht denn in Zeile 157?