记录使用conda创建、管理及迁移python环境以及在windows中以后台服务方式启动python项目

首先下载miniconda可以到这个网站 https://repo.anaconda.com/miniconda/ 去看一看,我使用的是:linux版-Miniconda3-4.3.30-Linux-x86_64.sh 和 windows版-Miniconda3-4.3.30-Windows-x86_64.exe,python版本是3.6.

linux版的安装可参考 linux下使用miniconda构建python运行环境

其实安装也简单 执行   bash Miniconda3-4.3.30-Linux-x86_64.sh  然后一路yes + 回车 就完车了,默认安装到root下,切换到root下,执行  source .bashrc ,然后执行  conda --version 查看一下版本信息,能够查看到就说明安装成功了

windows版的安装可参考 miniconda的安装与使用

这两个网站中均提到了切换conda的镜像源,本人建议先不要切换,如果在构建python环境的过程中过慢或卡住可在自行修改镜像源

创建python环境:

创建环境名称为 py36,python版本为3.6

conda create -n  py36 python=3.6

 

查看已经创建的环境:

conda info -e

 

切换到新环境:

windows:     activate py36

linux:  source activate py36

 

退出环境:

windows:  deactivate py36

linux:  source deactivate py36

 

安装需要的包:

conda install pakage_name

pip install pakage_name

 

查看已安装的包:

conda list

 

对于已经安装过python并且通过pip安装了很多依赖的,之后才安装的miniconda,如何将已安装的依赖迁移到conda管理的环境中呢:

将已安装的python的安装目录下的 ..\Lib\site-packages 下的所有文件及文件夹拷贝到 conda的创建的环境的目录的 ..\Miniconda3\envs\py36\Lib\site-packages 下,进行复制和替换

如果在之后的运行python项目是遇到找不到包的情况,可以使用  conda install  或  pip install (建议使用pip) 进行安装

 

环境离线迁移有好多方法,这里只说明离线迁移目标计算机无网络或网络极差的情况,其他方法可参考 Conda环境迁移

这里迁移需要用到conda-pack:

Conda-pack 是一个命令行工具,用于打包 conda 环境,其中包括该环境中安装的软件包的所有二进制文件。 当您想在有限或没有网络访问的系统中重现环境时,此功能很有用。上面的方法均从其各自的存储库下载软件包以创建环境。而此方法不需要。注意,conda-pack 指定平台和操作系统,目标计算机必须具有与源计算机相同的平台和操作系统。

要安装 conda-pack,请确保您位于 root 或 base 环境中,以便 conda-pack 在子环境中可用。Conda-pack 可通过 conda-forge 或者 PyPI 安装。

conda-forge:

  conda install -c conda-forge conda-pack

PyPI:

  pip install conda-pack

建议使用 PyPI

 

打包一个环境:

# pack enviroment py36 into py36.tar.gz

conda pack -n py36

# pack enviroment py36 into out_py36.tar.gz

conda pack -n py36 -o out_py36.tar.gz

# Pack enviroment located at an explicit path into py36.tar.gz

conda pack -p /explicit/path/to/py36

 

重新环境:

将打好的tar包复制到需要的机器上

linux:

#Unpack enviroment into directory `env-py36`

mkdir -p env-py36

tar -xzvf py36.tar.gz -C env-py36

注:这里的C是大写字母

windows: 直接右键新建文件夹  env-py36,右键py36.tar.gz解压到env-py36

 

激活环境:

linux:

# Activate the enviroment. This adds `py36/bin` to your path 

source py36/bin/activate

windows:

py36\Scripts\activate.bat

 

#Cleanup prefixes from in the active enviroment.

# Note that this command can also be run without activating the enviroment as long as some version of Python is already installed on the machine.

(env-py36) $ conda-unpack

 

Summary

Conda 提供了多种复制项目环境的方法。 创建环境的克隆可以提供定制的基本环境或该环境的快照。spec list 和 conda-pack 可创建特定于平台和操作系统的环境副本。 其中 spec list 使用网络来下载环境中特定的软件包,而 conda-pack 可以打包包括软件包二进制文件在内的整个环境,这在带宽不足或没有网络的情况下很有用。 Conda导出 environment.yml 的方式非常适合在不同平台和操作系统之间重新创建环境。

更多详情请见 docs.conda.io 和 conda-pack project page.

 

在windows中以后台服务方式启动python项目的命令是:

(env-py36)$ pythonw test.py > ./test.log 2>&1 

(env-py36)$ env-py36\pythonw.exe test.py > ./test.log 2>&1 

其他后台服务启动方式可参考 python启动后台程序_Windows下后台运行Python程序

 

每天进步一点点,点滴记录,积少成多。

以此做个记录,

如有不足之处还望多多留言指教!

posted @ 2021-07-26 15:01  金刀3691  阅读(2203)  评论(0编辑  收藏  举报