在Anaconda的虚拟环境中添加环境变量并通过python访问(win/mac/linux)

news/2024/11/8 15:01:18/

一、前言

  1. 有的时候密码登比较敏感的信息,不方便直接写在代码里

  2. 有很多变量我想很多project都可以访问到

那这时候使用环境变量是非常合适的了。

二、设置环境变量

以linux为例

  1. 直接在internal执行命令 export 变量=值

  2. 通过更改bashc文件

vim ~/.bashrc
# 在最后一行加上 
# 通过按i进行插入以下,之后填完通过esc之后:qw! 保存退出
export 变量=值
# 例如:
export PATH=$PATH:/home/che/bin
# 让新加的环境变量生效
source ~/.bashrc

在代码里访问:(以python为例)

import os
value = os.getenv(key)

mac类似:

2b8110c448435d89a6a945e37001a763.png

三、conda情况下

如果没有conda的情况下,直接在环境下这么做,getenv是没问题的

但是如果你用conda去create一个env,在这个env下如果在用这种方法去创建环境变量是不可行的。

就算是你已经source activate new_env进入新环境去export一个变量,依然还是在base环境中加入的环境变量,在new_env不起作用,new_env虚拟环境有一个独立的虚拟环境变量空间。

3.1 在mac和linux执行以下语句可以解决这个问题:

  1. 先执行,得到这个new_env的路径

echo $CONDA_PREFIX
0bc8961d59240b6551df3b262c41cb93.png
  1. 得到这个path之后,创建这些文件

cd $CONDA_PREFIX
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh
  1. 编辑这个./etc/conda/activate.d/env_vars.sh文件(vim即可)

#!/bin/shexport KEY=VALUE
  1. 之后编辑 ./etc/conda/deactivate.d/env_vars.sh文件

#!/bin/shunset KEY
  1. 重启环境

source avtivate new_env

如果这样配置在source activate new_env执行后,环境变量KEY开始生效

在执行conda deactivate,KEY被释放掉

这样你在进入new_env之后,在用get_env("KEY")的时候就可以获得对应的VALUE值了

3.2 windows下

1.得到路径

%CONDA_PREFIX%
  1. 创建文件

cd %CONDA_PREFIX%
mkdir .\etc\conda\activate.d
mkdir .\etc\conda\deactivate.d
type NUL > .\etc\conda\activate.d\env_vars.bat
type NUL > .\etc\conda\deactivate.d\env_vars.bat
  1. 修改.\etc\conda\activate.d\env_vars.bat

set KEY=VALUE
  1. 修改.\etc\conda\deactivate.d\env_vars.bat

set KEY=
  1. 重启环境

conda activate new_env

推荐阅读:

我的2022届互联网校招分享

我的2021总结

浅谈算法岗和开发岗的区别

互联网校招研发薪资汇总

2022届互联网求职现状,金9银10快变成铜9铁10!!

公众号:AI蜗牛车

保持谦逊、保持自律、保持进步

a289e08c4eea67ffa5445d7283a085df.jpeg

发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)

发送【1222】获取一份不错的leetcode刷题笔记

发送【AI四大名著】获取四本经典AI电子书


http://www.ppmy.cn/news/273811.html

相关文章

【Spring】Bean 的作用域和生命周期

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 Bean作用域问题引入 Bean的作用域 1. 单例作…

华为OD机试真题 JavaScript 实现【合法IP】【牛客练习题】

一、题目描述 IPV4地址可以用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此正号不需要出现),如10.137.17.1,是我…

亲身体验,不要再拖! 拖! 拖!

亲身体验,不要再拖! 拖! 拖! 拖延症其实是自我管理的一种放松,意志力极强或者非常自律的人是很少有拖延症的。我一直在思考对于像自己这样意志力薄弱的人,该如何摆脱拖延的坏习惯呢?方法总是有的,效果也总是有的。 >…

32bitwin7硬盘安装win8-64bit

32bitwin7硬盘安装win8-64bit 1、硬件支持64bit是最基本的,可以用cpu-z查看。 2、下载win7-32bit和win8-64bit,虚拟或提取到非c盘下,如果格式化c盘装win8-64bit,建议提取的好。 3、在cmd下用32位里的setup加一个installfrom参数,指…

SpringBoot整合JPA并简单使用示例

干了这碗毒鸡汤~ 相关知识说明: JPA(Java Persistence API):JPA用于描述对象——关系表的映射关系,并将运行期的实体对象持久化到数据库中。同时也提供有多达十八种增删改查操作数据库表的方法。JPA既可以JPA可以进行单表的增删改查操作&…

完美电脑主机一拖二,让你夫妻不再抢电脑,一台主机两人独立玩

近来闲着无事,突然想把家里的两台主机省出来一台,俩人玩一台主机,那电费得省多少啊,于是乎就开始找各种软件进行测试,最后选定了ASTER使用。 下面是本人的主机配置,以及需要的东西。 首先需要的是你的显卡有…

mysql查询bween_Mysql查询语句

一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,,,!,!>,!,< 二查询字符串 SELECT * FROM tb_stu WHERE sname 小刘 SELECT * FROM tb_stu WHERE sname like 刘% SELECT * FROM tb_stu WHERE sname like %程序员 SELECT * FROM tb_stu WHER…

解决Betwin客户机经常无法正常登录带来的困扰

BeTwin是一套基于Windows系统环境下的软件,它可让多个用户同时、独立地共享一台PC机的软硬件及外部资源.....&#xff08;在这里不废话了&#xff0c;这些内容还是让读者自己去Google吧 :P&#xff09; 本文的主题是如何解决使用Betwin过程中主机正常启动&#xff0c;客…