After-stream commit.
This commit is contained in:
parent
f0cb6f7c1f
commit
39282b1a38
5
SomePythonThingy/requirements.txt
Normal file
5
SomePythonThingy/requirements.txt
Normal file
@ -0,0 +1,5 @@
|
||||
mediapipe == 0.10.14
|
||||
numpy == 1.26.0
|
||||
psutil == 5.9.7
|
||||
cv2-enumerate-cameras == 1.1.10
|
||||
|
10
SomePythonThingy/some_utility_script.py
Normal file
10
SomePythonThingy/some_utility_script.py
Normal file
@ -0,0 +1,10 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import time
|
||||
|
||||
a = 10
|
||||
while a > 0:
|
||||
print("asdf: ", a)
|
||||
a -= 1
|
||||
time.sleep(1)
|
||||
|
@ -16,14 +16,32 @@ func _ready():
|
||||
#asdfblah.emit()
|
||||
#pw.stop_process()
|
||||
#
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
pw = KiriPythonWrapperInstance.new(
|
||||
"res://SomePythonThingy/test_a_thing.py")
|
||||
pw.setup_python()
|
||||
pw.start_process()
|
||||
|
||||
#print("running command...")
|
||||
#var utility_script_path = pw.convert_cache_item_to_real_path(
|
||||
#"res://SomePythonThingy/some_utility_script.py")
|
||||
#var r1 = pw.run_python_command([utility_script_path], [], true)
|
||||
#print("done running command... ", r1)
|
||||
|
||||
|
||||
print("running command...")
|
||||
var requirements_txt_path = pw.convert_cache_item_to_real_path(
|
||||
"res://SomePythonThingy/requirements.txt")
|
||||
var output_array = []
|
||||
var r1 = pw.run_python_command(
|
||||
["-m", "pip", "install", "-r", requirements_txt_path],
|
||||
output_array, true, true)
|
||||
print("done running command... ", r1)
|
||||
print("OUTPUT WAS:", output_array[0])
|
||||
|
||||
|
||||
|
||||
|
||||
pw.start_process(true)
|
||||
print("Call thingy...")
|
||||
var ret = await pw.call_rpc_async("some_function_to_call", [])
|
||||
print("Done thingy...")
|
||||
|
@ -211,6 +211,7 @@ func unpack_python(overwrite : bool = false):
|
||||
|
||||
var cache_path_godot : String = _get_cache_path_godot()
|
||||
|
||||
# FIXME: !!! THIS CAN END UP WITH PARTIAL INSTALLS !!!
|
||||
# Check to see if the Python executable already exists. If it does, we might
|
||||
# just skip unpacking.
|
||||
var python_executable_expected_path : String = \
|
||||
|
@ -92,21 +92,40 @@ func get_status():
|
||||
|
||||
return KiriPythonWrapperStatus.STATUS_RUNNING
|
||||
|
||||
func start_process(open_terminal : bool = false):
|
||||
func run_python_command(
|
||||
args : PackedStringArray,
|
||||
output : Array = [],
|
||||
read_stderr : bool = false,
|
||||
open_console : bool = false):
|
||||
|
||||
# FIXME: Make sure we don't have one running.
|
||||
|
||||
var open_port = 9500
|
||||
var python_exe_path : String = _get_python_executable()
|
||||
|
||||
# Convert Python script path into a real path on the system.
|
||||
var real_python_script_path = python_script_path
|
||||
# Do a little switcheroo on Linux to open a console.
|
||||
if open_console:
|
||||
if OS.get_name() == "Linux":
|
||||
args = PackedStringArray(["-e", python_exe_path]) + args
|
||||
python_exe_path = "xterm"
|
||||
|
||||
return OS.execute(python_exe_path, args, output, read_stderr, open_console)
|
||||
|
||||
func convert_cache_item_to_real_path(path : String):
|
||||
var real_python_script_path = path
|
||||
if real_python_script_path.begins_with("res://"):
|
||||
real_python_script_path = _build_wrangler._get_script_cache_path_system().path_join(
|
||||
real_python_script_path.substr(len("res://")))
|
||||
else:
|
||||
real_python_script_path = ProjectSettings.globalize_path(
|
||||
real_python_script_path)
|
||||
print("REAL PATH: ", real_python_script_path)
|
||||
return real_python_script_path
|
||||
|
||||
func start_process(open_terminal : bool = false):
|
||||
|
||||
# FIXME: Make sure we don't have one running.
|
||||
|
||||
var open_port = 9500
|
||||
|
||||
var real_python_script_path = convert_cache_item_to_real_path(
|
||||
python_script_path)
|
||||
|
||||
assert(not _server_packet_socket)
|
||||
_server_packet_socket = KiriPacketSocket.new()
|
||||
|
@ -9,11 +9,15 @@ Done:
|
||||
x Fix whatever this is: <stuff was here>
|
||||
x example Python module from OUTSIDE the addon
|
||||
x Remove xterm dependency, or make it like a debug-only thing.
|
||||
x Test on WINE/Windows.
|
||||
x First-time setup of requirements (pip, etc).
|
||||
|
||||
The big ones:
|
||||
|
||||
- First-time setup of requirements (pip, etc).
|
||||
- Test on WINE/Windows.
|
||||
- Deal with interrupted setup operations
|
||||
- We check for the python.exe file in a given setup location to see if
|
||||
we need to unpack stuff, but what if that exists but the setup was
|
||||
interrupted and we're missing files?
|
||||
- Documentation.
|
||||
- how to use .kiri_export_python
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user