美文网首页
Ubuntu 和 pycharm下设置环境变量

Ubuntu 和 pycharm下设置环境变量

作者: Elvis_zhou | 来源:发表于2019-01-24 16:41 被阅读0次

    场景:由于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的终端是可以得到环境变量的


    我就奇怪了,难道是我的虚拟环境的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本身有设置环境变量的设置:

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

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

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

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

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

    相关文章

      网友评论

          本文标题:Ubuntu 和 pycharm下设置环境变量

          本文链接:https://www.haomeiwen.com/subject/hkxujqtx.html