Python.exe 如何从字符串加载脚本?

在 AutoHotkey 习惯通过管道加载灵活生成的代码
AutoHotkey.exe \\.\pipe\test_9648000
但这在 python 上似乎失效了,管道虽然被读取,但会报错:
D:\python\python.exe: can’t open file ‘\\.\pipe\test_9770109’: [Errno 22] Invalid argument

目前想到的其他方案都不如管道方案:
1,写入到 .py文件
2,通过命令行加载。这显然也不行,上万行代码时显然是无法在命令行使用的
3,创建空进程后,通过exec() 在内部加载。

大佬们能否指点有没有其他方案?或者pipe管道为啥报错呢?

原来我是AHK通过json文件交换

现在apk直接跟API进行交换

有兴趣可以私聊

谢谢, 这并不是通信
而且论坛就是水贴的,没必要私聊。

动态加载代码,我现在也在用,现在是用提前写入到py的方案。

管道方案、exec等不会,能否介绍一下这几种方案的优劣

linux好像管道没有问题

image

如果你对几毫秒耗时无感,这些方法没什么大的优劣。
管道只是其中最快的而已。
写入 .py 涉及文件读写,延迟大
命令行只能加载简单代码
exec() 相当于初始化两次

我找到解决方法了,python.exe 不过是对 python.dll 的包装,我自己写个包装器就好了。

谢谢,能贴出调用方的代码吗?我怀疑是我调用代码没写好。

这个就是全部的代码了 :rofl:
如果你想两个程序在不同的终端调用,我只能给出bash的代码

执行端

mkfifo test_pipe_in_python
python < test_pipe_in_python

写入端

echo  "print('hello')" > test_pipe_in_python

谢谢,这和 Window 差异这么大,没有可参考性了

向大牛学习