首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不使用`source`加载python环境变量

基础概念

在Linux系统中,source命令(或点.命令)用于在当前shell会话中执行指定的脚本文件,从而使脚本中定义的环境变量立即生效。如果不使用source命令加载Python环境变量,那么即使修改了环境变量配置文件(如.bashrc.bash_profile),这些修改也不会立即反映在当前的shell会话中。

相关优势

  • 持久性:使用source命令加载环境变量可以确保在当前shell会话中持久化这些变量,而无需重新启动shell或登录。
  • 即时性:修改环境变量后,使用source命令可以立即看到效果,无需等待其他进程或会话的更新。

类型与应用场景

  • 类型:环境变量加载方式主要分为使用source命令和不使用source命令两种。
  • 应用场景
    • 当需要在当前shell会话中立即使用新设置的环境变量时,应使用source命令。
    • 当只需要在新的shell会话中应用环境变量时,可以不使用source命令,只需确保环境变量配置文件在每次登录时被正确执行。

问题与解决方法

问题:如果不使用source命令加载Python环境变量,可能会导致以下问题:

  • 在当前shell会话中无法访问新设置的环境变量。
  • 需要手动重新启动shell或登录才能使环境变量生效。

原因:不使用source命令时,环境变量配置文件的修改仅保存在文件中,并未立即应用到当前的shell会话中。

解决方法

  1. 使用source命令:在修改环境变量配置文件后,使用source命令使其立即生效。例如:
代码语言:txt
复制
source ~/.bashrc
  1. 重新启动shell或登录:如果不使用source命令,可以关闭当前shell并重新打开一个新的shell会话,或者重新登录系统,以确保环境变量配置文件被正确执行。
  2. 在脚本中使用export命令:如果需要在脚本中设置环境变量并使其对子进程可见,可以使用export命令。例如:
代码语言:txt
复制
export PYTHONPATH=/path/to/python/libraries

这样设置的环境变量将对当前shell会话及其子进程可见。

参考链接

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么不推荐在Spring Boot中使用@Value加载配置

@Value注解相信很多Spring Boot的开发者都已经有接触了,通过使用该注解,我们可以快速的把配置信息加载到Spring的Bean中。...比如下面这样,就可以轻松的把配置文件中key为com.didispace.title配置信息加载到TestService中来使用 @Service public class TestService {...但是为什么不推荐大家使用它呢?核心原因是:当我们使用@Value来直接提取配置信息使用的时候,会产生配置信息加载的碎片化。...比如,同一个配置,可能背多个Service或者Controller使用,当我们再要修改它的时候,就会存在一个遗漏的风险。我们无法方便的维护这些配置加载而导致一些问题。...我比较推荐的就是使用@ConfigurationProperties来分类和加载各种配置信息,比如,我要加载关于com.didispace的相关配置时候,就写一个这样的实现: @Configuration

15900
  • 使用python多线程加载模型并测试

    向AI转型的程序员都关注了这个号 机器学习AI算法工程   公众号:datayx 之前只用过单线程处理,加载模型进行测试,运行时间上也可以接受。...但是现在需要处理比较大量的数据,如果进行线性处理,可能测试一次就花10个小时,而且还不知道结果怎么样,所以多线程就必须使用上了。...应用场景: 使用线程可以把占据长时间的程序中的任务放到后台去处理。...以上内容来自:https://www.runoob.com/python/python-multithreading.html 2 使用多线程进行多模型加载和测试 先说一下如何分配多线程执行的思路: 由于单线程进行测试的时候是一张图像进一次网络...结果: 加载了16个模型,同时进行处理: 本文主要提供了一个模板进行多模型加载,但是如果一个模型就很大的情况下,这种就明显不合适了。但可以想到的是一次从多个batch进行测试,然后记录结果。

    1.6K30

    我为什么不建议你使用Python3.7.3?

    作者: Lateautumn4lin 来源:云爬虫技术研究笔记 ---- 之前使用Python的环境一直是Python3.7.3的,一直使用的很正常,没有什么毛病,直到最近做一个图片下载器的时候发现了问题...这个问题在Python中比较常见,说明是本地的SSL验证出现了问题,一般在Requests的使用中我们一般会这么进行处理: >>> import requests >>> session = requests.Session...https的去验证SSL证书,不过我这里的问题是使用的是Aiohttp库,并没有Verify这个参数,所以我们并不能使用这个去忽略这个问题。...最后的小建议 最后建议大家能够使用3.7.4的时候尽量不使用3.7.3版本,虽然3.8也可以避免这个问题,但是3.8还是刚推出,BUG问题还是很多的,所以目前这个阶段大家还是尽量使用3.7.4。...大家要是有什么关于Python这两个版本的疑问可以尽情提出来!

    2.1K30

    如何使用Python爬虫处理JavaScript动态加载的内容?

    传统的基于静态内容的爬虫技术往往无法直接获取这些动态加载的数据。本文将探讨如何使用Python来处理JavaScript动态加载的内容,并提供详细的实现代码过程。...driver.implicitly_wait(10) # 等待10秒 # 获取页面源代码 html = driver.page_source # 使用BeautifulSoup...# 关闭浏览器driver.quit()使用API请求处理动态内容除了使用Selenium外,另一种处理动态内容的方法是直接请求加载数据的API。...查找XHR或Fetch请求,这些请求通常包含了动态加载的数据。分析这些请求的URL和参数,然后在Python中模拟这些请求。...Pyppeteer处理动态内容Pyppeteer是一个Python库,它提供了一个高级的接口来控制无头版Chrome。

    61010

    解决shell脚本中source etcprofile重载配置文件不生效的问题

    以下为本次解决问题的实践记录: 1.示例 如下图所示,在python_install.sh脚本中,在安装完Python3、配置完环境变量后,使用source /etc/profile 命令来重新加载配置文件.../python_install.sh执行脚本完成后,在命令行输入:python3,仍然提示“-bash: python3: command not found”(表示重新加载配置文件未生效,系统无法识别到...python3命令) 2.原因 执行脚本时,脚本中的命令是在子shell中执行,子shell只能继承父shell的环境变量,而无法修改父shell的环境变量,所做的修改仅对当前子shell有效。...环境变量,但不改变父shell环境变量,仅对当前子shell有效 5.其他注意事项 若shell脚本中使用了source命令,则需要使用bash(或source)来执行,因为sh和bash是不同的shell.../"的区别,只要脚本中使用了“source /etc/profile”,就可以使用:source xxx.sh(脚本文件名称)来执行脚本,从而自动重新加载配置文件。

    9.2K31

    Linux下一键安装Python3&更改镜像源&虚拟环境管理技巧

    /configure --prefix=/home/python # 配置指定安装目录 make && make install # 编译&编译安装 5)配置python环境变量 export PYTHON_HOME...${PYTHON_HOME}\"/bin\"" >>/etc/profile # 重新加载配置文件,注意:执行脚本时需使用source命令而非..../或sh命令,否则环境变量不生效 `source /etc/profile` # 设置Python安装镜像源为阿里云 `pip config set global.index-url https://mirrors.aliyun.com...=====" 注意事项: 执行脚本需使用source命令而非./或sh命令,否则环境变量不生效,当然也可以再通过“source /etc/profile”命令使其生效。...具体原理详见之前分享过的《解决shell脚本中"source /etc/profile"重载配置文件不生效的问题》 2)执行安装 source python_install.sh 安装成功后如下图所示

    3.4K30

    Linux - 配置环境变量的几种方式

    # 在最后一行加上 注意点 生效时间:使用相同的用户打开新的终端时生效,或者手动 生效 source ~/.bash_profile 生效期限:永久有效 生效范围:当前登录用户 如果没有 文件,.../bin 注意点 生效时间:使用相同的用户打开新的终端时生效,或者手动 生效 source /etc/bashrc 生效期限:永久有效 生效范围:所有用户 方式五: vim /etc/profile.../bin 注意点 生效时间:使用相同的用户打开新的终端时生效,或者手动 生效 source /etc/environment 生效期限:永久有效 生效范围:所有用户 环境变量加载原理解析 思考:上述六种环境变量的配置方式..., Linux是按什么顺序加载的呢?...系统级别环境变量配置文件: /etc/bashrc /etc/profile (centos7 无) /etc/bash_profile /etc/environment 环境变量加载顺序

    15.5K20

    小知识点--crontab

    -e:编辑某个用户的crontab文件内容,如果不指定用户,则是代表这个当前用户。 -l:显示某个用户的crontab文件内容,如果不指定用户,则是代表这个当前用户。...,因为我们手动执行某个任务时,是在当前shell环境下进行的,程序当然能找到环境变量,而系统自动执行任务调度时,是不会加载任何环境变量的,因此,就需要在crontab文件中指定任务运行所需的所有环境变量...注意点如下: 1.执行脚本时最好要写全局路径 2.执行的脚本,比如start.sh,如果引用了环境变量,需要在脚本中使用source加载环境变量。start.sh部分内容示例如下: !.../bin/sh source /etc/profile ...... 3.手动执行脚本没问题,但是crontab不执行,这也有可能是环境变量的问题。可以直接在crontab命令总引入环境变量。...* * * * * source /etc/profile;python -h

    60620

    linux(11)配置环境变量「建议收藏」

    =$PATH:/usr/local/src/python3/bin 注意 生效时间:使用相同的用户打开新的终端时生效,或者手动 source ~/.bashrc 生效 生效期限:永久有效 生效范围:当前登录用户...# 在最后一行加上 export PATH=$PATH:/usr/local/src/python3/bin 注意: 生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bash_profile.../bin 注意: 生效时间:使用相同的用户打开新的终端时生效,或者手动 `source /etc/bashrc `生效 生效期限:永久有效 生效范围:所有用户 环境变量配置方法五:vim /etc/profile.../bin 注意: 生效时间:使用相同的用户打开新的终端时生效,或者手动source /etc/environment生效 生效期限:永久有效 生效范围:所有用户 环境变量加载原理解析 脑洞大开:...上述六种环境变量的配置方式, Linux是按什么顺序加载的呢?

    55110

    如何简便快捷使用python抓爬网页动态加载的数据

    如何才能简单方便的获取动态加载的数据呢。...经过一番调查,我们发现一个叫selenium的控件能通过代码动态控制浏览器,例如让浏览器加载特定页面,让浏览器下拉页面,然后获取浏览器中加载页面的html代码,于是我们可以使用它来方便的抓取动态页面数据...必须要跟你当前使用的chrome版本完全一致,在下面链接中去下载: http://npm.taobao.org/mirrors/chromedriver 记住一定要选取与你chrome浏览器版本一致的进行下载...条商品的数据,然后我们通过执行一段js代码获得body组件对应的html源码,然后获取id为gl-i-wrap的div对象,这时候会看到它返回60个对应组件,这意味着页面上所有商品数据都可以获得: page_source...= driver.execute_script("return document.body.innerHTML;") bs = BeautifulSoup(page_source, 'html.parser

    2.1K10

    Python 中为什么不建议使用 time.sleep 实现定时功能?

    有时候,我们想实现一个非常简单的定时功能,例如:让一个程序每天早上 8 点调用某个函数 但我们又不想安装任何第三方库,也不会使用 crontab 或者任务计划功能,就想使用纯 Python 来实现 可能有同学会这样写代码...这个次数并不多 但无论如何,专业的事情应该交由专业的工具来做;time.sleep 用来设置周期性的时间间隔可以,但它实际上不适合用来做定时任务 因为一个支持定时任务的库,例如:Python 的schedule...这不是我们简单用两三行 Python 代码就能完成的。...总结 如果能用 crontab 或者任务计划,那么这是最优选择;其次,使用 Python 专用的定时模块;最次,才是使用 time.sleep 来实现 如果不得不用 time.sleep,那么应该尽量缩短检查的间隔

    4.7K10

    python crontab 坑

    示例: $HOME/path/to/script > $HOME/log/file 2>&1 & 环境变量 crontab会以用户的身份执行配置的命令,但是不会加载用户的环境变量,crontab会设置几个默认的环境变量...我们往往会在.bash_profile文件中定义一些全局的环境变量,但是crontab执行时并不会加载这个文件,所以你在shell中正常执行的程序,放到crontab里就不行了,很可能就是因为找不到环境变量了...要解决这个问题只能是自己加载环境变量了,可以在shell脚本中添加source $HOME/.bash_profile,或者直接添加到crontab中。...0 12 * * * source $HOME/.bash_profile && $HOME/path/to/script > $HOME/log/file 2>&1 & 路径 我们在写脚本时往往会使用相对路径...在终端中直接执行Python程序时,Python会将输出内容自动编码为终端所使用的编码,我使用的终端编码是utf-8,所以不会出错,输出的内容也是正常的。

    1K10

    【Mac】Mac下配置zsh环境变量

    在Mac的使用中过程中,有许多需要增加环境变量的情况。比如配置go的私有仓库GOPRIVATE,以及校验服务器GOSUMDB。按照习惯我们都会搜索一下 "mac下如何修改环境变量"。...1.问题-环境变量不生效 mac中默认使用的是zsh终端,按照一般的修改环境变量的方法: vim ~/.bash_profile export GOSUMDB=sum.golang.google.cn...export GOPRIVATE=git.querytest.com #模拟 wq后,执行 source ~/.bashrc 发现环境变量确实写到.bash_profile文件里面了,通过source...2.mac的环境变量加载顺序 Mac系统的环境变量,加载顺序为: /etc/profile /etc/paths /etc/paths.d/ ~/.bash_profile ~/.bash_login...3.问题解决 如上所述,mac中默认使用的是zsh终端,所以上面的的环境变量增加方法只适用于bash,在zsh中不生效。

    11.3K20

    pycharm使用虚拟环境_pycharm配置虚拟环境

    解决了依赖分析问题,使用pipenv graph命令可以看到依赖树 广泛使用 Hash 校验,保证安全性。 可通过自动加载 .env 读取环境变量,简化开发流程。...安装 pip install pipenv 创建环境 一行命令搞定 virtualenv 和 pipfile 的初始化(不初始化则将使用默认版本的Python),它会在你的用户目录下对你的 virtualenv...锁定版本 更新 lock 文件锁定当前环境的依赖版本 pipenv lock 环境变量管理 如果你开发调试时需要配一堆环境变量,可以写到.env文件中,在pipenv shell进入虚拟环境时,它会帮你把这些环境变量加载好...运行python命令 pipenv run python toutiao.py 这将使用当前虚拟环境关联的Python解释器,执行命令。...–man 显示使用手册. –three / –two 使用 Python 3/2 来创建 virtualenv –python TEXT 直接指定 Python 解析器.

    1.2K30
    领券