У меня есть среда, созданная с использованием miniconda с python 3.6.8, которая называется basepy_3_6_8.
Я хочу сохранить снимок среды в файл, а затем заново создать его на другом компьютере:
Существуют разные команды для захвата снимка среды с немного отличающимися выходными данными.Какие из них можно использовать, чтобы гарантировать, что точная среда, используемая пользователем, воссоздается в цели?
Я надеялся, что pip freeze > requirements.txt
и pip install -r requirements.txt
будут работать независимо от исходной среды, но я заметил, чтоpip freeze изнутри среды conda не фиксирует версию 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), чтобы его можно было равномерно установить на другой машине.Каков наилучший подход для этого?