Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在virtualenv中导入Anaconda environment.yml?_Python_Anaconda_Yaml_Virtualenv_Jupyter - Fatal编程技术网

Python 如何在virtualenv中导入Anaconda environment.yml?

Python 如何在virtualenv中导入Anaconda environment.yml?,python,anaconda,yaml,virtualenv,jupyter,Python,Anaconda,Yaml,Virtualenv,Jupyter,我只需要在VirtualEnvironment中导入Anaconda.yml环境文件 我之所以需要这样做,是因为在nVidia Jetson TX2开发板上,我无法安装和运行Anaconda发行版(它与ARM体系结构不兼容)。相反,Virtualenv和Jupyter的安装和运行都完美无缺 .yml文件如下所示: name: tfdeeplearning channels: - defaults dependencies: - bleach=1.5.0=py35_0 - certif

我只需要在VirtualEnvironment中导入Anaconda.yml环境文件

我之所以需要这样做,是因为在nVidia Jetson TX2开发板上,我无法安装和运行Anaconda发行版(它与ARM体系结构不兼容)。相反,Virtualenv和Jupyter的安装和运行都完美无缺

.yml文件如下所示:

name: tfdeeplearning
channels:
  - defaults
dependencies:
  - bleach=1.5.0=py35_0
  - certifi=2016.2.28=py35_0
  - colorama=0.3.9=py35_0
  - cycler=0.10.0=py35_0
  - decorator=4.1.2=py35_0
  - entrypoints=0.2.3=py35_0
  - html5lib=0.9999999=py35_0
  - icu=57.1=vc14_0
  - ipykernel=4.6.1=py35_0
  - ipython=6.1.0=py35_0
  - ipython_genutils=0.2.0=py35_0
  - ipywidgets=6.0.0=py35_0
  - jedi=0.10.2=py35_2
  - jinja2=2.9.6=py35_0
  - jpeg=9b=vc14_0
  - jsonschema=2.6.0=py35_0
  - jupyter=1.0.0=py35_3
  - jupyter_client=5.1.0=py35_0
  - jupyter_console=5.2.0=py35_0
  - jupyter_core=4.3.0=py35_0
  - libpng=1.6.30=vc14_1
  - markupsafe=1.0=py35_0
  - matplotlib=2.0.2=np113py35_0
  - mistune=0.7.4=py35_0
  - mkl=2017.0.3=0
  - nbconvert=5.2.1=py35_0
  - nbformat=4.4.0=py35_0
  - notebook=5.0.0=py35_0
  - numpy=1.13.1=py35_0
  - openssl=1.0.2l=vc14_0
  - pandas=0.20.3=py35_0
  - pandocfilters=1.4.2=py35_0
  - path.py=10.3.1=py35_0
  - pickleshare=0.7.4=py35_0
  - pip=9.0.1=py35_1
  - prompt_toolkit=1.0.15=py35_0
  - pygments=2.2.0=py35_0
  - pyparsing=2.2.0=py35_0
  - pyqt=5.6.0=py35_2
  - python=3.5.4=0
  - python-dateutil=2.6.1=py35_0
  - pytz=2017.2=py35_0
  - pyzmq=16.0.2=py35_0
  - qt=5.6.2=vc14_6
  - qtconsole=4.3.1=py35_0
  - requests=2.14.2=py35_0
  - scikit-learn=0.19.0=np113py35_0
  - scipy=0.19.1=np113py35_0
  - setuptools=36.4.0=py35_1
  - simplegeneric=0.8.1=py35_1
  - sip=4.18=py35_0
  - six=1.10.0=py35_1
  - testpath=0.3.1=py35_0
  - tk=8.5.18=vc14_0
  - tornado=4.5.2=py35_0
  - traitlets=4.3.2=py35_0
  - vs2015_runtime=14.0.25420=0
  - wcwidth=0.1.7=py35_0
  - wheel=0.29.0=py35_0
  - widgetsnbextension=3.0.2=py35_0
  - win_unicode_console=0.5=py35_0
  - 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可以从
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
请注意:

  • PyPI可能无法提供非pip包

  • 当前的pip版本是18.1,需求列表中的版本是旧版本

  • 根据官方YAML FAQ,使用
    .yml
    作为 只有在建议的
    .yaml
    扩展名。在现代文件系统上,情况并非如此。我 我不知道水蟒是否像往常一样不符合规定,或者你 在这件事上你可以选择

  • 自从几年前引入双轮以来,许多 支持它们的软件包通常(对我来说总是)是可能的 只需使用VirtualNVS和pip。从而规避了 Anaconda未100%合规且未 最新的所有软件包(与PyPI相比)


您的文件确实是这样的吗?我这样问是因为它是一个无效的YAML文件,由根级别的“key”
-pip
引起。你确定这个值不应该缩进吗?很好的建议,我为它创建了一个要点: