有没有办法在激活venv时自动加载环境变量?

问题描述

我正在使用 python venv 创建虚拟环境。但是,由于我正在处理具有不同虚拟环境的多个项目,因此我不想每次切换到不同的项目时都手动设置环境变量。

有没有办法在激活 venv 时自动设置 venv 环境变量?

解决此问题的最佳做法是什么?

解决方法

一个好的做法是使用 dotenv。您可以通过将环境变量放入名为 .env 的文件来加载环境,并且无论何时您想要加载环境,只需使用以下行:

from dotenv import load_dotenv
load_dotenv()

它的优点在于它只存在于您运行单个脚本的范围内,因为它本质上就像多次调用 os.environ['variable'] = 'value' 一样。

,

激活虚拟环境只不过是获取 shell 脚本。您可以编辑该脚本以设置您喜欢的任何变量。您可能还想编辑 deactivate 的定义以清除或回滚您对环境所做的任何更改。

,

您需要编写一个 bash 脚本(如果您使用的是 bash shell),您可以在其中指定一个特定的命令,该命令将激活项目 python 环境并在系统环境中添加项目特定的环境变量。并在退出项目python环境时删除环境变量。

但我不认为这是做事的好/正确方式。 @mz 解决方案将是正确的,您可以在其中定义 .env 文件并在其中定义 env 变量。并在项目运行时使用 load_env 读取 env 变量

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...