pip和conda environment.yml:+不支持的操作数类型:'NoneType'和'list'

问题描述 投票:2回答:1

我正在尝试在conda env中安装带有pip的包。所以我有一个environment.yml文件如下:

name: test-env

dependencies:
    - pip:
        - "git+https://github.com/choldgraf/download"

但是当我运行conda env update --file environment.yml时,我得到:

Using Anaconda API: https://api.anaconda.org
Fetching package metadata .............
Solving package specifications: An unexpected error has occurred.
Please consider posting the following information to the
conda GitHub issue tracker at:

# Here some configuration that I omit    

Traceback (most recent call last):
  File "/home/mathurin/anaconda3/lib/python3.5/site-packages/conda/exceptions.py", line 634, in conda_exception_handler
    return_value = func(*args, **kwargs)
  File "/home/mathurin/anaconda3/lib/python3.5/site-packages/conda_env/cli/main_update.py", line 106, in execute
    installer.install(prefix, specs, args, env, prune=args.prune)
  File "/home/mathurin/anaconda3/lib/python3.5/site-packages/conda_env/installers/pip.py", line 8, in install
    pip_cmd = pip_args(prefix) + ['install', ] + specs
TypeError: unsupported operand type(s) for +: 'NoneType' and 'list'

但是,只需在我的bash控制台中输入pip install git+https://github.com/choldgraf/download就可以了。我究竟做错了什么 ?

编辑:我的第一个想法是更新conda。我现在处于版本4.3.23,并试图conda update conda产量:

# All requested packages already installed.
# packages in environment at ~/anaconda3:
#
conda                     4.3.23                   py35_0    conda-forge
python pip anaconda conda
1个回答
1
投票

我有同样的问题。我找到了解决方案。您必须为您的配置添加至少一个依赖项(我不确定它是否必须是pip)。在我的配置中,我添加了pip=9.0.1=py35_1

name: myenv
channels:
- defaults
dependencies:
- pip=9.0.1=py35_1
- pip:
  - tqdm==4.19.5

所以我认为在你的情况下它会是这样的:

name: test-env
dependencies:
- pip=9.0.1=py35_1
- pip:
  - "git+https://github.com/choldgraf/download"
© www.soinside.com 2019 - 2024. All rights reserved.