Ubuntu 和 pycharm下设置环境变量

本文探讨了在PyCharm中正确设置环境变量的方法,尤其是在Docker容器中运行项目时。文章详细解释了为何直接在Ubuntu或PyCharm终端设置环境变量无法生效,并提供了通过bash启动PyCharm和使用PyCharm内置环境变量设置的有效解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:由于pycharm需要模拟项目在docker容器中运行,现在需要给项目提供环境变量,并判断其类型。

我的第一反应是,给ubuntu设置环境变量:

  1. root设置环境变量:
vim /etc/environment
# 写入环境变量
PARENT=8
#更新
source /etc/environment

在root用户下是可以得到结果的:

echo $PARENT

pycharmterminal并不能用,keyerror
2.给用户设置环境变量

vim ~/.bashrc
# 写入环境变量
PARENT=8
#更新
source ~/.bashrc

pycharmterminal依然不能用,keyerror
3.但是我在ubuntu的终端是可以得到环境变量的

12031442-e0f1c7a15107cd4f.png

我就奇怪了,难道是我的虚拟环境的python版本不同?于是我切换了pyenv的version

pyenv versions
pyenv global 2.7.12

然而并么有什么卵用。
4.难道是pycharmterminal有问题?我又在pycharmterminal中设置了一遍
依然没有卵用
5.于是乎,我去问了大佬,大佬说,pycharm的环境变量是继承父进程的!
也就是说,子进程fock()父进程的时候环境变量就已经分配好了,也就是说只有改变父进程的环境变量,才能使得多个子进程(这里指pycharmterminalconsole)都能取到新设置的环境变量,简单点说就是,我无论怎么改变pycharm中的terminal的环境变量,在pycharmconsole里都不会有结果,因为这是pycharm的两个子进程。

  1. 解决方法:
    1.用bash去启动pycharm,确定pycharm的父进程,这样改变bash的环境变量就行了
    1. pycharm本身有设置环境变量的设置:
      12031442-47fd21b96a954f1a.png
12031442-caa6c7aab28ec4ba.png

这种方式很简单,判断其类型:

print type(os.environ['PARENT'])

结果是string,即使输入是int,输出也是string

  1. 设置默认的环境变量(用在没有该参数程序也能正常执行时用,防止程序报错):
    a = os.environ.get('PARENTp', 333)

try except捕获异常。
以上!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值