地 址:联系地址联系地址联系地址
电 话:020-123456789
网址:zzzzz1q.twqueen.com
邮 箱:admin@aa.com
Python 应用经常需要使用一些包第三方包或者模块,包管有时需要依赖特定的理及包或者库的版本 ,所以不能有一个能适应所有 Python 应用的虚拟软件环境 ,很多时候不同的环境 Python 应用所依赖的版本是冲突的,满足了其中一个 ,管理另一个则无法运行,包管解决这一问题的理及方法是虚拟环境。虚拟环境是虚拟一个包含了特定 Python 解析器以及一些软件包的自包含目录 ,不同的环境应用程序可以使用不同的虚拟环境 ,从而解决了依赖冲突问题 ,管理而且虚拟环境中只需要安装应用相关的包管包或者模块 ,可以给部署提供便利。理及
虚拟环境并不是虚拟什么新技术 ,主要是环境利用了操作系统中环境变量以及进程间环境隔离的特性 。
Python 处理虚拟环境的管理包有好几种 ,conda用得比较多。
pip 是最常用的包管理工具 ,通过 pip install <packagename> 命令格式来安装软件包,使用的是 pypi 软件包源。安装python自带pip ,或者通过 yum install python-pip 安装。
conda 多用作科学计算领域的包管理工具 ,功能丰富且强大 ,使用的软件包源是 Anaconda repository 和 Anaconda Cloud,conda 不仅支持 Python 软件包 ,还可以安装 C 、C++ 、R 以及其他语言的二定制软件包 。除了软件包管理外 ,还能提供相互隔离的软件环境 。安装 Anaconda 自带 conda 。
virtualenv 是一个虚拟环境管理器,作为非数据科学领域的开发者来说是很实用的。它可以让你每个项目甚至每个脚本配置一个自定义的Python解释器环境 ,这最大的好处是可以不污染开发环境。可以通过 pip install virtualenv 安装。
如果说venv是虚拟环境管理器,pip是包管理器,那么conda则是两者的结合。
conda虚拟环境是独立于操作系统解释器环境的 ,即无论操作系统解释器什么版本(哪怕2.7),我也可以指定虚拟环境python版本为3.6(见文章开头所说原博客),而venv是依赖主环境的 。
安装pythonn sudo apt-get install software-properties-commonn sudo add-apt-repository ppa:deadsnakes/ppan sudo apt-get updaten sudo apt-get install python3.6n n 删除pythonn sudo apt-get remove --auto-remove python3.4n n pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple some-packagen n 清空回收站命令:n sudo rm -rf ~/.local/share/Trash/*
验证conda已被安装 ,打开“Anaconda Prompt” ,conda --versionn 通过conda --help学习conda怎么使用
清理 condan conda clean -p //删除从不使用的包n conda clean -t //删除tar包n conda clean -a //删除索引缓存 ,锁定文件 ,未使用的缓存包和包
1. 显示所有的虚拟环境:conda env listn (注意目录:base 在基目录 ,其它后天的环境在 envs 内[C:anaconda3envs])n 2. 创建一个名为 zlltest 环境,指定Python版本是3.8或2.7n conda create --name zlltest python=3.8n #conda create --name zlltest python=2.7n conda create --name zlltest python=3.7.1 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/n n 3. 激活名为 zlltest 的环境n conda activate zlltest # windowsn source activate zlltest # linux/macn 4. 切换环境n conda activate zlltestn 5. 退出环境n deactivate #windowsn source deactivate #linuxn 6. 删除一个名为 zlltest 的环境n conda remove --name zlltest --alln 7. 克隆oldname环境为newname环境n conda create --name newname --clone oldnamen n conda update -n base -c defaults condan conda clean --packages && conda clean --all && conda update --al
conda 的包管理功能是对pip的一种补充 ,如果当前已经激活了某个Python环境 ,那么就可以在当前环境开始安装第三方包。n n conda list # 查看当前环境下已安装的packagen n conda search numpy # 查找名为 numpy 的信息 package 的信息n n conda install numpy # 安装名为 numpy 的包n (conda install numpy 会自动安装 mkl(intel 加速科学计算的包) ,而pip install numpy 则不会)n n conda update numpy # 更新numpy 包n conda uninstall numpy # 卸载numpy 包n n # -n指定环境 --channel指定源地址n conda install -n zlltest numpy # 在名为 zlltest 环境下安装 numpy 包n n # 使用地址 https://conda.anaconda.org/anaconda 来安装tensorflown conda install --channel https://conda.anaconda.org/anaconda tensorflow=1.8.0n n 对于那些用 pip 无法安装成功的模块你都可以尝试用 conda 来安装 ,如果用 conda 找不到相应的包,当然你继续选择 pip 来安装包也是没问题的。n n 升级n conda update conda # 更新 condan conda update anaconda # 更新 anacondan conda update anaconda-navigator #update最新版本的anaconda-navigator n conda update python # 更新 python
virtualenv是一个创建隔绝的python环境的工具 ,virtualenv创建一个包含所有必要的可执行文件的文件夹 ,用来使用python工程所需的包 。
1. 安装 :pip install virtualenvn n 2. 创建虚拟环境,在工程目录下 ,例如 :pro_name ,切换到 pro_name 下:n virtualenv venv 命令创建虚拟环境,venv 是虚拟环境名称,可以修改。默认是--no-site-packagesn --no-site-packages: 令隔离环境不能访问系统全局的site-packages目录n --system-site-packages : 令隔离环境可以访问系统全局的site-packages目录n virtualenv --system-site-packages -p /usr/bin/python3.6 venv36 #依赖于主环境n 创建一个独立的python3.6虚拟环境: virtualenv -p /usr/bin/python3.6 venvp36n n 3. 进入虚拟环境n linux:n source venv/bin/activaten source venvp36/bin/activaten windows: n venv/Scripts/activaten 在venv环境下,用pip安装的包都被安装到venv这个环境下 ,系统Python环境不受任何影响 。也就是说,venv环境是专门针对pro_name这个目录创建的n n 4. 退出、删除n 退出当前的venv环境,使用命令 :deactivaten 如果需要删除我们创建的虚拟环境 ,只需要退出 ,并删除创建的文件夹即可n n 查看python指向 :n ls -l /usr/bin | grep pythonn rm /usr/bin/pythonn n python3指向python3.6(定义一个软连接)n ln -s /usr/bin/python3.6 /usr/bin/python3n n n pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simplen pip install sanic==20.12.3
第三方包的安装路径: Python37Libsite-packages
在没有网络的情况下非常适合从一个已经安装包的电脑上拷贝包到另一个没有安装包的电脑上 。
进入第三方库安装的路径的文件夹 。site-packages 。
找到需要的包复制即可。注意一个库的包有两个文件,要同时复制。
将包移动到另一台电脑上的site-packages 粘贴即可使用(有很多第三方包是关联一些其它包的,都需要拷贝过去) 。
在Anaconda中,无论在哪个环境下 ,只要通过conda install xxx的方式安装的库都会放在Anaconda的pkgs目录下 ,如:E:pythonanacondapkgsnumpy-1.18.1-py36h48dd78f_1 。这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境(将这个库的Libsite-packages中的文件复制到当前新环境下Lib中的第三方库中,也即Libsite-packages中 ,这个过程相当于通过pip install xxx进行了安装)而不用重复下载。
pip是在特定的环境中进行库的安装,所以卸载库也是一样的道理 ,通过pip uninstall xxx就可以将该环境下Libsite-packages中对应的库进行卸载了 。
如果通过conda uninstall xxx删除当前环境下某个库时 ,删除的只是当前环境下site-packages目录中该库的内容,它的效果和通过pip uninstall xxx是一样的。如果再到另一个环境中通过conda install xxx下载这个库,则还是通过将pkgs目录下的库复制到当前环境 。若要清空这个pkgs下的已下载库 ,可以通过命令conda clean -h进行实现 。
开源软件国内镜像源对比,参考:https://huaxiaostar.com/2020/07/open-source-china-mirror-list/#more
pypi 清华大学源 :https://pypi.tuna.tsinghua.edu.cn/simplen pypi 豆瓣源 :https://pypi.douban.com/simple/n pypi 腾讯源 :https://mirrors.cloud.tencent.com/pypi/simplen pypi 阿里源:https://mirrors.aliyun.com/pypi/simple/n n 有些还安不上 ,可以增加:n conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/n n pip install markdown # 这样会从国外官网下载markdown模块并安装。n pip install markdown -i https://pypi.tuna.tsinghua.edu.cn/simple #替换成清华大学源。n pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
Conda 添加源有2种常用方式。以下以清华源为例做说明:n 方式一n 添加源的方式是执行以下命令:n conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/n conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/n conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/n conda config --set show_channel_urls yesn n conda info 查看配置详情n n conda install --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ torchvision=0.8.1n conda install --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ torchn n n 方式二n 修改用户目录下的 .condarc 文件如下:n n channels:n - defaultsn show_channel_urls: truen channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anacondan default_channels:n - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mainn - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/freen n 注,Windows 在资源管理器里无法直接创建名为 .condarc 文件,有几种解决方案:n - PowerShell 里执行 New-Item .condarc 命令来创建n - 在 VS Code 里新建 .condarc 文件n - 执行命令 conda config --set show_channel_urls yes 生成n n 注,上述两种方式里,都只列了比较核心的 main 和 free packages ,但一般够用了。如果想添加更多 packages,可以参考清华源-Anaconda帮助页面:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/