flask - 在cmd中设置了环境变量,进入python后失效如何解决?
ringa_lee
ringa_lee 2017-04-17 17:27:10
0
4
541

在自学flask-mail,其中一步是从环境变量中获取邮箱帐号和密码,后来发现无法获取,在venv环境下,cmd测试如下:

set MAIL_USERNAME = 'XXXX'
set MAIL_USERNAME

会显示XXXX,表明设置成功,然后我在cmd里输入

python hello.py shell
import os
print(os.environ.get('MAIL_USERNAME'))

显示None,表明MAIL_USERNAME为空

后来通过查询,这其实是在读取系统的环境变量。而set的方法(linux下是export)是设置临时环境变量,cmd(或bash)一关闭就会丢失。但临时变量在linux似乎是允许不同的程序使用,只是bash之间相互独立,而在win下用set设置的“临时变量”,一进入python shell就用不了了,所以应该叫“普通环境变量”而不是“临时环境变量”。然而,我在系统里设置了永久的环境变量,用os.environ.get()依然无法访问到。很想知道为什么,求教,谢谢!

ringa_lee
ringa_lee

ringa_lee

全部回覆(4)
黄舟

你先搞清楚,變數,環境變數,不是一個東西.
set設定的變數,對其它進程不生效.

python os.putenv() 我不知道為什麼不生效.
看到網上有文章建議直接改

 os.environ['aaaa']='test'
 os.environ['aaaa']
'test'

os.environ創建的也是臨時變數.

batch-cn是個不錯的命令工具包管理器.bathome出品,推薦一下.

下載第三方指令工具,用這些工具修改系統變數,setx.ezxe,conset.exe
http://batch-cn.qiniudn.com/tool/setx.exe

一種是批次改註冊表重啟,一種是批次調WMIC.你自己搜尋看看吧.

常用的應該是以上三種方法.

Rapid Environment Editor 是一個非常好的,環境變數管理工具.
備份,導入匯出,也可以以命令列的方式修改環境變數.

伊谢尔伦

你要在我的電腦-環境變數手動設定才有效,這是全域的。 set方式設定只對目前的指令視窗有效,關閉指令視窗就沒有了,這樣設定有作用域的。

阿神

找到你的~/.vimrc,在裡面修改,然後source一下,具體百度下~~set只是對當前視窗臨時生效

大家讲道理

名字相同嗎?看你問題裡邊名字是不同的

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板