讨论在 #2716
原始帖子由 peteBarahon 于2024年7月16日发布
Langflow无法从文件中正确加载环境变量。问题出在main.py中的run函数试图通过locals()[]结构覆盖局部变量的方式。这个功能似乎在Python 3上不能正常工作。有问题的代码位于第153行到第156行。
我通过一个单独的函数重新评估了相关局部变量来解决了这个问题。我还使用了find_dotenv()作为更可靠的env_var变量初始化值的备选方案。
我已经附上了文件,供遇到相同问题的人使用。由于时间限制,我不是这个群组的活跃成员,但我希望这个小小的贡献能帮到别人。
请下载它,并使用差异工具将其与您自己的进行比较,以便您可以看到所做的更改。为了避免附件上传问题,我将文件扩展名更改为.txt。
main.py.txt
非常感谢所有参与此项目的人。太棒了!
1条答案
按热度按时间piv4azn71#
你好@peteBarahon!我是一个机器人,可以帮助你修复bug、回答问题以及指导你如何成为贡献者。在等待人类维护者时,我会在这里协助你。
已经发现并纠正了由于在Python 3中使用
locals()
覆盖本地变量而导致Langflow无法正确从.env
文件加载环境值的问题。此外,建议将find_dotenv()
用作更可靠的环境变量初始化回退值。为了解决这个问题所做的更改概述如下:
locals()
覆盖局部变量,而是使用一个单独的函数重新评估并正确设置局部变量。find_dotenv()
:这个函数被用作回退,以确保.env
文件可靠地定位和加载。你可以在讨论here中查看用户提供的已修正的
__main__.py
文件。参考原始方法在
__main__.py
中加载环境变量:这种方法存在问题,因为Python 3中的
locals()
有局限性。修正的方法涉及以更可靠的方式重新评估局部变量。要了解Langflow如何处理环境变量加载和初始化,可以参考代码库1(https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/main.py)2(https://github.com/langflow-ai/langflow/blob/dev/src/backend/base/langflow/services/variable/service.py)中的相关部分。