Sieht aktuell so aus:
Hübsch ist anders, aber egal
Die GUI wird über die normal cli gestartet (wenn man keinen Parameter angibt)... setup.py hat das:
Code: Alles auswählen
setup(
entry_points={
"console_scripts": ["DragonPy = dragonpy.core.cli:main"],
},
)
Das eigentliche starten einer Emulation passiert dann über subprocess.Popen()
und hier das eigentliche Problem: Wenn ich einfach subprocess.Popen(["DragonPy",...]) mache, wird die Datei "DragonPy" nicht in jedem Fall gefunden
Also hab ich mir gesagt, ich such einfach in sys.path nach der Datei, um den kompletten Pfad zu haben. Klappt meistens auch, aber es gibt Situationen, da klappt das nicht
Die automatisch generierte Datei (siehe auch [1]) sieht z.B. so aus:
Code: Alles auswählen
#!/home/jens/DragonPy_env/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'DragonPyEmulator==0.5.2','console_scripts','DragonPy'
__requires__ = 'DragonPyEmulator==0.5.2'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('DragonPyEmulator==0.5.2', 'console_scripts', 'DragonPy')()
)
Code: Alles auswählen
DISTRIBUTION_NAME="DragonPyEmulator"
DIST_GROUP = "console_scripts"
ENTRY_POINT = "DragonPy"
distribution = get_distribution(DISTRIBUTION_NAME)
print(distribution)
entry_map = distribution.get_entry_map()
# Return the entry point map for `group`, or the full entry map
print("entry_map:", entry_map)
entry_info = distribution.get_entry_info(DIST_GROUP, ENTRY_POINT)
# Return the EntryPoint object for `group`+`name`, or ``None``
print("entry_info:", entry_info)
entry_point = distribution.load_entry_point(DIST_GROUP, ENTRY_POINT)
# Return the `name` entry point of `group` or raise ImportError
print("entry_point:", entry_point)
Code: Alles auswählen
DragonPyEmulator 0.5.2
entry_map: {'console_scripts': {'DragonPy': EntryPoint.parse('DragonPy = dragonpy.core.cli:main')}}
entry_info: DragonPy = dragonpy.core.cli:main
entry_point: <function main at 0xb5a9c92c>
Wobei es schöner wäre, wenn die Ausgaben von mehreren Instanzen nicht in der selben Console landen würde... Aber das ist mir jetzt erstmal egal...
Noch jemand eine Idee?!?
[1] https://pythonhosted.org/setuptools/set ... t-creation