09-01Python环境配置0.1.1
2021-03-04 01:27
标签:资源管理 工作环境 菜鸟 int 指针 脚本 one pytho 其他 记录一些坑/ 知识点, 有可能不准确. Anaconda是一个很大的软件包, 包括管理器conda以及和python科学计算有关的大部分的包. 安装Anaconda的优势在于一站式服务, 什么都有, 但是坏处在于, 太多了, 首先占地方; 其次因为本地的包安装多了, 对于新手来说, 操作一旦失误就有可能导致一些莫名其妙的错误. Windows和其他操作系统里的PATH变量可以认为是一组指针, 指向程序/脚本/文件等放的地方, 这个可以从改环境变量时输入的东西--目录, 看出来. 一个程序的执行需要依赖于一些其他的程序/文件, 这时候就会在PATH的目录中按顺序查找, 如果找到了, 那就顺利执行, 如果没有找到, 就会报错说缺少什么/没找到什么. 另外的情况是, 在Shell里输入程序的名字, 如果当前目录下没有这个程序, 那么操作系统就会在PATH里保存的目录里面去查找有没有这个程序, 如果找到了, 就可以执行, 如果没有找到, 就会报错没有这个程序. 对于Python, 模块module是指一个 管理包, 个人使用的工具主要是 Python本身有两大版本, 一个 Conda是一个包的管理器, 管理的方式是给不同版本的Python解释器创建不同的虚拟环境, 这样就保证了运行环境是单一版本的python解释器, 就不会出现错误. 具体为在 提示符前面的 结果为 使用Conda后, Python的默认环境是 打开文件资源管理器, 可以看看Conda是怎么管理包的: 首先来到Conda的安装目录 所以总结就是, Conda在 使用conda安装包: 于是现在可以知道, 出现的 是指从本地的 而相比, 使用 PowerShell首先是不支持使用Conda切换环境的, 即 切换到CMD, 方法一样, 发现它支持. 因为CMD太丑了, 且不支持 原理咱没有深究, 网上查阅的说法是: "Power Shel与anaconda的虚拟环境不兼容". 解决办法是: 以管理员身份启动PowerShell, 然后: , 之后重新启动一下PowerShell, 然后 就可以了. (看版本, 有的是 前面提到的命令就不再重复了, GUI vs. CLI: Shell vs. Terminal Shell, 壳, 是操作系统中, 用于解释命令行输入的程序: Linux下是Bash, Zsh; Windows下是CMD, PowerShell; Mac自带Bash. 之后的主题预告: cuda, 安装pytorch, 连接云服务器, Docker, ... 09-01Python环境配置0.1.1 标签:资源管理 工作环境 菜鸟 int 指针 脚本 one pytho 其他 原文地址:https://www.cnblogs.com/chancebeauty/p/14375652.htmlPython环境配置
Anaconda vs. Miniconda
Miniconda是一个相比很小的软件包, 主要是管理器conda.
安装Miniconda的好处在于它小, 用户可以清楚地知道自己曾经安装了什么包, 做了什么操作, 并且每次安装后, 自己用文件管理器看一看可以知道东西安装在了什么地方(对于菜鸟用户), 坏处在于, 每次安装新的东西都需要下载.PATH
Python的模块, 包, 框架, ...
.py
文件, 包package是指一个带有_init_.py
文件的文件夹.
库/框架是抽象概念, 解决一个问题的一个 模块和包的合集 叫做库/框架.pip
和conda
, pip
是python官方的管理包的工具, 安装python会自带pip
.版本冲突
2.x
, 一个3.x
, 它们本身互不兼容, 用了错误的解释器去执行代码, 就会报错.(base) PS C:\> python --version #查看python版本. 注意前面的是提示符, 不是输入的代码
(base) PS C:\> pip --version #查看pip版本
(base) PS C:\> conda --version #查看conda的版本
Pip vs. Conda
???\anaconda\env\
目录下(使用Miniconda时, 就是???\miniconda\env\
), 用户每新创建一个环境, conda就在那个地方新建一个文件夹:(base) PS C:\> conda create -n Name_of_Your_Env #创建一个新的环境, 使用默认的python版本
(base) PS C:\> # 也可以` conda create -n Name_of_Your_Env python=3.6 `来指定环境中使用的python版本
(base)
表示目前的工作环境, 要切换到新建的工作环境, 使用(base) PS C:\> conda activate Name_of_Your_Env
(Name_of_Your_Env) PS C:\> #注意提示符前面的环境变了
(base)
, 此时它的工作目录在anaconda\
, 而新建立的环境的工作目录在???\anaconda\envs\Name_of_Your_Env
下. 要回到默认的环境(base)
, 就是(Name_of_Your_Env) PS C:\> conda deactivate
(base) PS C:\>
???\anaconda\
下,
env
里是虚拟环境的目录, 发现里面没有(base)
, 只有(Name_of_Your_Env)
, 说明(base)
不在env
里.???\anaconda\env\Name_of_Your_Env\
, 把里面的文件和???\anaconda\
下的对比, 发现大同小异, 说明默认的base
的Python环境就在外面, 即???\anaconda\
下, 而这个目录除了Python的环境外, 还有其他的东西, 比如Env
, 比如pkgs
.pkgs
里的东西是在任意环境下, 使用Conda
命令安装的包.???\anaconda\env\Name_of_Your_Env\
和???\anaconda\
下Python的环境中的Lib\site-packages
, 是当前环境安装的包.pkgs
里放了所有安装过的包的文件, 在一个环境下要安装包, 如果pkgs
里面有这个包, 就是复制过去到环境中的Lib\site-packages
中去, 如果pkgs
里没有这个包, 就是网上下载. (所谓一次下载, 一直使用. )
注意: pkgs
里的东西不影响虚拟环境里的包, 就算pkgs
里有包的文件, 如果在虚拟环境下没有执行安装操作, Conda还是会假装你没有安装, 这样也就执行了虚拟环境的管理.(base) PS C:\> conda install Name_of_the_Package
(Name_of_Your_Env) PS C:\> conda install Name_of_the_Package
Collecting packages metadata (current_repodata.jason): done
Solving environment: done
#...一堆提示...#
The following NEW packages will be INSTALLED:
vc anaconda/pkgs/main/XXXXXXXXXXXX
Proceed ([y]/n)?
pkgs
里安装.pip
安装, 本身的安装的package, 从文件本身到安装的地方, 与Conda安装都是没有区别的. 唯一一点的区别, 就是pip
安装的了包, 不会被统一保存在pkgs里
, 只会在当前环境的Lib\site-packages
中保存.PowerShell下使用Conda切换环境
activate
半天都不会出现(Name_of_Your_Env)
, 这个可以自己试一试.PS C:\> conda activate Name_of_Your_Env
PS C:\> # 没有反应, 再测试一遍
PS C:\> conda env list
# conda environments:
#
base * file_location...
Name_of_Your_Env file_location...
PS C:\> # 这里的`*`表示当前的环境, 即说明`activate`命令没有效果.
ls
等命令, 于是得解决这个问题.PS C:\> conda install -n root -c pscondaenvs pscondaenvs
PS C:\> Set-ExecutionPolicy RemoteSigned # 输入`Y`同意一下更改策略
PS C:\> conda activate base
activate base
)命令
conda env
(base) PS C:\> conda env list # 列出所有的环境
(base) PS C:\> conda env remove -n Name_of_Your_Env # 删除环境
(base) PS C:\> conda list # 列出当前环境下的包
(base) PS C:\> conda remove Name_of_a_Package # 删除环境下的某个包
(base) PS C:\> conda remove -h # h是指help的意思, 所有指令通用
(base) PS C:\> conda remove -n Name_of_a_Package # n指代name, 说明后面的参数是名字
(base) PS C:\> conda remove -p PATH_of_a_Package # p指代prefix, 说明后面的参数是路径
# 这里就是把-h里的内容抄了一遍.
Shell vs. Terminal
GUI是Graphical User Interface, CLI是Command Line Interface, 一个是图形交互, 一个是命令行交互.
Console, 控制台, 早期是大型计算机的组成部分, 供管理员与Shell交互; Terminal, 终端, 早期是与大型机链接的, 普通用户手里的终端设备, 供普通用户与Shell交互.
目前人们把Console与Terminal混为一谈, 主要是以软件模拟器的形式存在, 有很多种, 供下载.
文章标题:09-01Python环境配置0.1.1
文章链接:http://soscw.com/index.php/essay/59764.html