记录使用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程序
每天进步一点点,点滴记录,积少成多。
以此做个记录,
如有不足之处还望多多留言指教!