pycharm配置python环境变量_求教大家 pycharm 中,环境变量 path 的问题!

问题的发现

在 pycharm 里把一个编译好的二进制文件放到/usr/local/bin/,然后在程序里调用。

cmmd = "xxx ..."

os.system(cmmd)

报这样的错,但是/usr/local/bin/已经在环境变量 path 里。

sh: xxx: command not found

最简单的解决办法就是把上述命令改为:

cmmd = "/usr/local/bin/xxx ..."

但是仍然想知道原因。

问题分析

这是用print(os.environ)在 pycharm 里打印出来的信息( pycharm 里用的 pyenv 创建的虚拟环境)

environ({......, 'PATH': '/Users/xxx/.pyenv/versions/3.6.0/envs/test-3.6.0/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/baoruiqi/.pyenv/versions/test-3.6.0/bin', 'PYENV_SHELL': 'fish', ......})

打印出几乎是所有的环境变量(包括各种和 python 无关的)。这里的 PATH 和在 shell 里执行echo $PATH得到的结果不一样,头尾都加上了当前虚拟环境的路径(为啥要加两次?可能是 pyenv 的手段),另外中间去掉了很多环境值,包括这次踩到的坑/usr/local/bin

为了探索原因,我在 shell 里先进 pycharm 里使用的同一个 python 虚拟环境,再打印值:

$ pyenv activate test-3.6.0

(test-3.6.0) $ python

>>> import os

>>> os.environ

environ({......, 'PATH': '/Users/baoruiqi/.pyenv/versions/test-3.6.0/bin:/usr/local/Cellar/pyenv/1.0.10/libexec:/usr/local/Cellar/pyenv-virtualenv/1.0.0/shims:/Users/baoruiqi/.pyenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin', .......})

打印出来的命令依然是经过一些添加的命令,但是基本涵盖真实 PATH 中的值。

这样来看是不是意味着:虽然 python 本身会根据当前环境修改出自身( python shell )的变量,但是我这个坑的罪魁祸首是 pycharm 呢?但是 pycharm 的偏好设置里没有找到环境变量相关设置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值