pip можно установить из файла requirements.txt
, который будет выглядеть как элементы в последовательности, которая является значением для ключа pip
в вашем файле .yml
, но без тире:
ipython-genutils==0.2.0
jupyter-client==5.1.0
jupyter-console==5.2.0
jupyter-core==4.3.0
markdown==2.6.9
prompt-toolkit==1.0.15
protobuf==3.4.0
tensorflow==1.3.0
tensorflow-tensorboard==0.1.6
werkzeug==0.12.2
win-unicode-console==0.5
Предполагая, что конец вашего файла на самом деле выглядит следующим образом:
.
.
.
- wincertstore=0.2=py35_0
- zlib=1.2.11=vc14_0
- pip:
- ipython-genutils==0.2.0
- jupyter-client==5.1.0
- jupyter-console==5.2.0
- jupyter-core==4.3.0
- markdown==2.6.9
- prompt-toolkit==1.0.15
- protobuf==3.4.0
- tensorflow==1.3.0
- tensorflow-tensorboard==0.1.6
- werkzeug==0.12.2
- win-unicode-console==0.5
prefix: C:\Users\Marcial\Anaconda3\envs\tfdeeplearning
(т. Е. Запись для pip имеет отступ, делающий этот файл YAML действительным) и называется anaconda-project.yml
, вы можете сделать:
import ruamel.yaml
yaml = ruamel.yaml.YAML()
data = yaml.load(open('anaconda-project.yml'))
requirements = []
for dep in data['dependencies']:
if isinstance(dep, str):
package, package_version, python_version = dep.split('=')
if python_version == '0':
continue
requirements.append(package + '==' + package_version)
elif isinstance(dep, dict):
for preq in dep.get('pip', []):
requirements.append(preq)
with open('requirements.txt', 'w') as fp:
for requirement in requirements:
print(requirement, file=fp)
в результате получается файл requirement.txt
, который можно использовать с:
pip install -r requirements.txt
Обратите внимание:
не-pip пакеты могут быть недоступны из PyPI
текущая версия пипса - 18.1, в списке требований старая версия
, что в соответствии ск официальному FAQ по YAML, использование .yml
в качестве расширения для вашего файла YAML должно быть сделано только при рекомендованном расширении .yaml
.На современных файловых системах это никогда не происходит.Я не знаю, является ли Anaconda, как это часто бывает, несоответствующим или у вас есть выбор в этом вопросе.
с момента введения бинарных колес несколько лет назад,и многие пакеты, поддерживающие их, часто (и для меня всегда) можно просто использовать virtualenvs и pip.И, таким образом, обойти проблемы, вызванные тем, что Anaconda не соответствует требованиям 100% и не обновляет все свои пакеты (по сравнению с PyPI).