捕获当前python环境的快照并在另一台计算机上重新创建

时间:2019-02-04 21:54:35

标签: python pip virtualenv conda python-venv

我有一个使用miniconda和python 3.6.8创建的环境,称为basepy_3_6_8。

我想将环境快照保存到文件中,然后稍后在另一台计算机上重新创建它:

有不同的命令来捕获环境快照,但输出略有不同。我可以使用其中哪些方法来保证在目标中重新创建用户使用的确切环境?

我希望pip freeze > requirements.txtpip install -r requirements.txt可以独立于源环境工作,但是我注意到conda环境中的pip冻结无法捕获python版本。

以下是创建conda环境以及不同命令输出的代码:

$ conda create -n myenv python=3.6.8
$ conda activate myenv

(myenv)$ pip freeze
astroid==2.1.0
autopep8==1.4.3
certifi==2018.11.29
colorama==0.4.1
isort==4.3.4
lazy-object-proxy==1.3.1
mccabe==0.6.1
pycodestyle==2.4.0
pylint==2.2.2
six==1.12.0
typed-ast==1.1.1
wincertstore==0.2
wrapt==1.11.0

(myenv)$ pip list
Package           Version
----------------- ----------
astroid           2.1.0
autopep8          1.4.3
certifi           2018.11.29
colorama          0.4.1
isort             4.3.4
lazy-object-proxy 1.3.1
mccabe            0.6.1
pip               18.1
pycodestyle       2.4.0
pylint            2.2.2
setuptools        40.6.3
six               1.12.0
typed-ast         1.1.1
wheel             0.32.3
wincertstore      0.2
wrapt             1.11.0

(myenv)$ conda list
# packages in environment at C:\Users\alias\AppData\Local\Continuum\miniconda3\envs\myenv:
#
# Name                    Version                   Build  Channel
certifi                   2018.11.29               py36_0
pip                       18.1                     py36_0
python                    3.6.8                h9f7ef89_0
setuptools                40.6.3                   py36_0
sqlite                    3.26.0               he774522_0
vc                        14.1                 h0510ff6_4
vs2015_runtime            14.15.26706          h3a45250_0
wheel                     0.32.3                   py36_0
wincertstore              0.2              py36h7fe50ca_0

(myenv)$ conda list --export
# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: win-64
certifi=2018.11.29=py36_0
pip=18.1=py36_0
python=3.6.8=h9f7ef89_0
setuptools=40.6.3=py36_0
sqlite=3.26.0=he774522_0
vc=14.1=h0510ff6_4
vs2015_runtime=14.15.26706=h3a45250_0
wheel=0.32.3=py36_0
wincertstore=0.2=py36h7fe50ca_0

我最终对通用工具感兴趣,该工具可以捕获指定类型的当前环境(conda,virtualenv,venv,全局python环境),以便将其统一安装在另一台计算机上。最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

我从未使用过conda,但是我尝试使用两种不同的工具来管理python版本和您的项目依赖项。

要安装特定的python版本,我将使用pyenv:https://github.com/pyenv/pyenv

pyenv还有一个插件来管理应支持Anaconda和Miniconda的virtualenvs(https://github.com/pyenv/pyenv-virtualenv):https://github.com/pyenv/pyenv-virtualenv#anaconda-and-miniconda

要管理您的依赖项(您在虚拟环境中安装的软件包),您有几种选择:

希望这会有所帮助。

相关问题