所谓独立环境

有一个操作,我大概做过一百遍,但是这一百遍,我其实都不知道我到底在做什么,那就是

每次我用tensorflow之前都会这样来一下,这是当时装tf的时候官网安装教程的建议,让我下了一个什么程序,“为tensorflow设置一个独立的运行环境。”我当时就闭眼照做了,这一百遍我都不知道它到底在干嘛也没耽误用tf,但我最近不是第501次打算重新做人嘛,所以要跟经我手的每一个操作都死磕到底。

什么叫“独立的运行环境”,docker也干的是这样一件事情,这个抽象的说法是说目标程序运行不受本地环境影响,但物理层面到底发生了什么事情?

所谓程序运行的“环境”,就是两件事,它的依赖程序在本地1.有没有2.在哪里,而且这个在哪里的讨论范围,不是你整个pc,而是你给它的搜索路径范围,所以我们有环境变量PATH。那么“独立的运行环境”呢?那就是改变该程序运行时的搜索路径,把它的依赖包单独装一套,然后把搜索路径范围限定在这里。

一开始我以为这个搞独立运行环境的程序屏蔽了PATH,自己整了一个什么依赖项搜索机制,但是在启动后输出了一下PATH发现:

所以前面的想法是错误的,它是把自己的窝点位置加进了PATH,搞了一个优先搜索。想想也当然应该这样,除了目标程序的依赖项,你“进入这个独立环境”后该用的general工具比如cd ls这些还得用,它不可能把这些全给你配齐,也不知道你究竟会用到什么,所以只需要把自己的窝点路径加入PATH优先搜索,那么只要是它的依赖项,就用它自己的,general的工具,该怎么办怎么办。

这就通顺了,把activate打开一看,果然是个改PATH值的脚本文件,用完了之后,deactivate再改回来。

posted @ 2019-07-15 17:05  糯米_甜酒  阅读(149)  评论(0编辑  收藏  举报