gpt4 book ai didi

Python子进程我无法导入其他模块

转载 作者:行者123 更新时间:2023-12-05 05:19:18 24 4
gpt4 key购买 nike

我正在尝试使用 python 子进程来执行脚本,这让我很感兴趣能够导入我的项目。在另一个进程中运行时,我只有典型的模块,而在导入时没有我的项目的模块。如何导入我的模块?

例子:

first_script.py

import subprocess
from my_project.any_module import any_module

def __init__(self):
subprocess.call(['python', 'path/to/exec/second_script.py'])

second_script.py

from my_project.any_module import any_module

def __init__(self):
print any_module.argument

在第一个脚本中,import any_module 有效,在第二个脚本中无效。

有什么想法吗?谢谢。

最佳答案

my_project 模块需要在您的 PYTHONPATH 中,以便 Python 可以找到它。 PYTHONPATH 包括您当前的工作目录,这就是为什么它在您运行它时在您的第一个脚本中起作用的原因。但是当你调用一个子进程时,cwd 是不同的。因此,您需要将 my_project 的路径添加到 PYTHONPATH,并使用 subprocess.call()env 参数明确指定 PYTHONPATH。

但是,以这种方式运行 Python 代码很尴尬。除非您有阻止这种情况的特定要求,否则我建议使用 multiprocessing打包而不是在单独的进程中运行 Python 代码。

关于Python子进程我无法导入其他模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46561725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com