【问题标题】:TypeError When Creating Conda Environment创建 Conda 环境时出现 TypeError
【发布时间】:2017-04-02 22:48:54
【问题描述】:

我正在尝试使用以下命令从 yaml 文件创建 conda 环境:

conda env create -f myenv.yml python=3    

当我的 yaml 文件这样写时:

name: myenv
channels:
  - conda-forge
dependencies:
  - django=1.10.5
  - pip:
    - gunicorn==19.7.0
    - psycopg2==2.6.2

效果很好。

当我的 yaml 文件这样写时(没有 conda-forge 包/通道):

name: myenv
dependencies:
  - pip:
    - gunicorn==19.7.0
    - psycopg2==2.6.2

它会产生以下错误:

Traceback (most recent call last):
  File "/home/myuser/anaconda3/lib/python3.6/site-packages/conda/exceptions.py", line 573, in conda_exception_handler
    return_value = func(*args, **kwargs)
  File "/home/myuser/anaconda3/lib/python3.6/site-packages/conda_env/cli/main_create.py", line 108, in execute
    installer.install(prefix, pkg_specs, args, env)
  File "/home/myuser/anaconda3/lib/python3.6/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'

我需要使用没有 conda-forge 包的第二个 yaml 示例。

有什么建议吗?

【问题讨论】:

    标签: anaconda conda


    【解决方案1】:

    IMO,这看起来像 conda 中的 bug。但是,您可以通过添加 pip 作为依赖项来解决此问题。因此,请确保文件myenv.yml 具有以下内容:

    name: myenv
    dependencies:
      - pip=9.0.1=py27_1
      - pip:
        - gunicorn==19.7.0
        - psycopg2==2.6.2
    

    【讨论】:

    • 谢谢。作品!顺便说一句,它也可以在不指定 py27_1 的情况下工作。我在 conda create 命令中指定了 python=3,因此它安装了 pip=9.0.1=py36_1。
    • 是的,我在 py2 基础安装中对此进行了测试。是的,不需要指定构建字符串。
    猜你喜欢
    • 2017-04-02
    • 2023-02-06
    • 2016-06-21
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多