使用environment.yml配置环境时候报错could not find expected ‘:‘ in “<unicode string>“, prefix:

27 篇文章 0 订阅
14 篇文章 0 订阅

问题描述:

执行

conda env create -f environment.yml

时候报错

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/conda/exceptions.py", line 1129, in __call__
        return func(*args, **kwargs)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/conda_env/cli/main.py", line 80, in do_call
        exit_code = getattr(module, func_name)(args, parser)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/conda/notices/core.py", line 72, in wrapper
        return_value = func(*args, **kwargs)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/conda_env/cli/main_create.py", line 103, in execute
        spec = specs.detect(name=name, filename=get_filename(args.file), directory=os.getcwd())
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/conda_env/specs/__init__.py", line 47, in detect
        if spec.can_handle():
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/conda_env/specs/yaml_file.py", line 19, in can_handle
        self._environment = env.from_file(self.filename)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/conda_env/env.py", line 169, in from_file
        return from_yaml(yamlstr, filename=filename)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/conda_env/env.py", line 143, in from_yaml
        data = yaml_safe_load(yamlstr)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/conda/common/serialize.py", line 50, in yaml_safe_load
        return yaml.safe_load(string, version="1.2")
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/main.py", line 980, in safe_load
        return load(stream, SafeLoader, version)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/main.py", line 935, in load
        return loader._constructor.get_single_data()
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/constructor.py", line 109, in get_single_data
        node = self.composer.get_single_node()
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/composer.py", line 78, in get_single_node
        document = self.compose_document()
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/composer.py", line 101, in compose_document
        node = self.compose_node(None, None)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/composer.py", line 138, in compose_node
        node = self.compose_mapping_node(anchor)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/composer.py", line 218, in compose_mapping_node
        item_value = self.compose_node(node, item_key)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/composer.py", line 136, in compose_node
        node = self.compose_sequence_node(anchor)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/composer.py", line 180, in compose_sequence_node
        node.value.append(self.compose_node(node, index))
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/composer.py", line 138, in compose_node
        node = self.compose_mapping_node(anchor)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/composer.py", line 218, in compose_mapping_node
        item_value = self.compose_node(node, item_key)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/composer.py", line 136, in compose_node
        node = self.compose_sequence_node(anchor)
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/composer.py", line 179, in compose_sequence_node
        while not self.parser.check_event(SequenceEndEvent):
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/parser.py", line 141, in check_event
        self.current_event = self.state()
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/parser.py", line 534, in parse_indentless_sequence_entry
        if self.scanner.check_token(BlockEntryToken):
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/scanner.py", line 168, in check_token
        while self.need_more_tokens():
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/scanner.py", line 205, in need_more_tokens
        self.stale_possible_simple_keys()
      File "/home/LIST_2080Ti/anaconda3/lib/python3.9/site-packages/ruamel_yaml/scanner.py", line 354, in stale_possible_simple_keys
        raise ScannerError(
    ruamel_yaml.scanner.ScannerError: while scanning a simple key
      in "<unicode string>", line 143, column 5:
            -i https://pypi.tuna.tsinghua.ed ... 
            ^ (line: 143)
    could not find expected ':'
      in "<unicode string>", line 144, column 1:
        prefix: D:\Program\Anaconda3\env ... 
        ^ (line: 144)

`$ /home/LIST_2080Ti/anaconda3/bin/conda-env create -f environment.yml`

  environment variables:
                 CIO_TEST=<not set>
  CONDA_AUTO_UPDATE_CONDA=false
        CONDA_DEFAULT_ENV=venv1
                CONDA_EXE=/home/LIST_2080Ti/anaconda3/bin/conda
             CONDA_PREFIX=/home/LIST_2080Ti/anaconda3/envs/venv1
    CONDA_PROMPT_MODIFIER=(venv1)
         CONDA_PYTHON_EXE=/home/LIST_2080Ti/anaconda3/bin/python
               CONDA_ROOT=/home/LIST_2080Ti/anaconda3
              CONDA_SHLVL=1
           CURL_CA_BUNDLE=<not set>
          LD_LIBRARY_PATH=/home/LIST_2080Ti/Qt/5.15.2/gcc_64/lib:/home/LIST_2080Ti/Qt/5.15.2/gcc
                          _64/lib:
                     PATH=/home/LIST_2080Ti/anaconda3/envs/venv1/bin:/home/LIST_2080Ti/fsl/bin:/
                          home/LIST_2080Ti/miniconda3/bin:/home/LIST_2080Ti/.vscode-
                          server/bin/97dec172d3256f8ca4bfb2143f3f76b503ca0534/bin/remote-cli:/ho
                          me/LIST_2080Ti/.local/bin:/home/LIST_2080Ti/fsl/bin:/home/LIST_2080Ti/
                          anaconda3/condabin:/home/LIST_2080Ti/fsl/share/fsl/bin:/usr/local/sbin
                          :/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/ga
                          mes:/snap/bin
       REQUESTS_CA_BUNDLE=<not set>
            SSL_CERT_FILE=<not set>

     active environment : venv1
    active env location : /home/LIST_2080Ti/anaconda3/envs/venv1
            shell level : 1
       user config file : /home/LIST_2080Ti/.condarc
 populated config files : /home/LIST_2080Ti/.condarc
          conda version : 22.9.0
    conda-build version : 3.22.0
         python version : 3.9.13.final.0
       virtual packages : __cuda=11.7=0
                          __linux=5.15.0=0
                          __glibc=2.31=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /home/LIST_2080Ti/anaconda3  (writable)
      conda av data dir : /home/LIST_2080Ti/anaconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/public/linux-64
                          https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/public/noarch
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64
                          https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
                          https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /home/LIST_2080Ti/anaconda3/pkgs
                          /home/LIST_2080Ti/.conda/pkgs
       envs directories : /home/LIST_2080Ti/anaconda3/envs
                          /home/LIST_2080Ti/.conda/envs
               platform : linux-64
             user-agent : conda/22.9.0 requests/2.28.1 CPython/3.9.13 Linux/5.15.0-57-generic ubuntu/20.04.5 glibc/2.31
                UID:GID : 1001:1001
             netrc file : None
           offline mode : False


An unexpected error has occurred. Conda has prepared the above report.

If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers? [y/N]: 
Timeout reached. No report sent.

 经过检查发现,报错的是最后一行prefix,于是我先注释掉这一行,不行。然后把这一行删除也不行。随后又把剩余的空行也删除。

现在开始配置环境了。

environment.yml本来就是由conda从原有环境clone出来的,目的就是为了和原有程序的环境保持一致。最后的prefix只是说明这些依赖项的源。但是为了保证安装包的快速,已经把.yml文件channel部分的default改为了清华源。

如下图所示:

 

name: cat
channels:
  - conda-forge
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2

dependencies:
  - _tflow_select=2.1.0=gpu

开始时候,前面是这样的。

name: cat
channels:
  - conda-forge
  - default

dependencies:
  - _tflow_select=2.1.0=gpu
  - absl-py=0.12.0=py37haa95532_0
  - astor=0.8.1=py37haa95532_0

删除了default,增添了另外五行。

这样,原有的报错就解决了。

将本机的项目环境复制到服务器粗略顺序:

步骤1:克隆原有项目环境
conda create -n new_env  --clone  exist_env
步骤2:激活本机原有的环境
conda activate exist_env
步骤3:导出环境配置文件environment.yml文件
conda env export > environment.yml
步骤4:将其上传到服务器,将environment.yml文件复制到目标主机的/home目录下,然后打开在base环境中,输入命令:
conda env create -f environment.yml

Anaconda 复制或移植已有环境(复制到别的服务器上)_anaconda复制环境_℡ヾNothing-_哥的博客-CSDN博客

参考:

anaconda与环境依赖文件environment.yml_lalalagjl的博客-CSDN博客

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ACMSunny

赠人玫瑰,手有余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值