我需要在终端上运行几次Python脚本。这个脚本要求我导入一些库。因此,每次我在终端中调用脚本时,都会再次加载库,这会导致时间的浪费。有什么方法可以一劳永逸地导入库呢?(如果我尝试“朴素”的方式,首先调用一个脚本只是为了导入库,然后运行我的代码,那么它就不能工作)。
编辑:我需要在终端中运行脚本,因为它实际上是在Java开发的另一个程序中运行的。Java代码在终端中调用Pythin脚本,读取其结果并对其进行处理,然后再次调用它。
发布于 2018-11-26 15:41:41
一种解决方案是,您可以让python脚本始终运行,并使用管道在进程之间进行通信,如下面摘自this答案的代码。
import os, time
pipe_path = "/tmp/mypipe"
if not os.path.exists(pipe_path):
os.mkfifo(pipe_path)
# Open the fifo. We need to open in non-blocking mode or it will stalls until
# someone opens it for writting
pipe_fd = os.open(pipe_path, os.O_RDONLY | os.O_NONBLOCK)
with os.fdopen(pipe_fd) as pipe:
while True:
message = pipe.read()
if message:
print("Received: '%s'" % message)
print("Doing other stuff")
time.sleep(0.5)发布于 2018-11-26 15:14:48
脚本完成后,库将被卸载,所以处理这个问题的最好方法是编写脚本,以便它可以多次迭代,而不是多次运行整个脚本。我可能会使用input() (或者raw_input(),如果您正在运行Python2)来读取您想要迭代它的多少次,或者使用像click这样的库来为它创建一个命令行参数。
https://stackoverflow.com/questions/53484032
复制相似问题