ruamel_yaml.constructor.ConstructorError:无法确定“<unicode string>”中标签“tag:yaml.org,2002:python/tuple”的构造函数

如何解决ruamel_yaml.constructor.ConstructorError:无法确定“<unicode string>”中标签“tag:yaml.org,2002:python/tuple”的构造函数

我正在尝试下载 Kinetics-600 数据集以进行活动识别,为此我按照此存储库中的说明进行操作:https://github.com/activitynet/ActivityNet

但是,在步骤 conda env create -f environment.yml 我收到此错误

ruamel_yaml.constructor.ConstructorError: 无法确定 “”第 2 行第 11 列中标记“tag:yaml.org,2002:python/tuple”的构造函数:通道:!!python/tuple

我应该如何解决这个错误

完整的错误报告是:

(base) /mnt/disks/mona/ActivityNet/Crawler/Kinetics$ conda env create -f environment.yml

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

    Traceback (most recent call last):
      File "/opt/conda/lib/python3.7/site-packages/conda/exceptions.py",line 1079,in __call__
        return func(*args,**kwargs)
      File "/opt/conda/lib/python3.7/site-packages/conda_env/cli/main.py",line 80,in do_call
        exit_code = getattr(module,func_name)(args,parser)
      File "/opt/conda/lib/python3.7/site-packages/conda_env/cli/main_create.py",line 87,in execute
        spec = specs.detect(name=name,filename=filename,directory=os.getcwd())
      File "/opt/conda/lib/python3.7/site-packages/conda_env/specs/__init__.py",line 43,in detect
        if spec.can_handle():
      File "/opt/conda/lib/python3.7/site-packages/conda_env/specs/yaml_file.py",line 18,in can_handle
        self._environment = env.from_file(self.filename)
      File "/opt/conda/lib/python3.7/site-packages/conda_env/env.py",line 160,in from_file
        return from_yaml(yamlstr,filename=filename)
      File "/opt/conda/lib/python3.7/site-packages/conda_env/env.py",line 141,in from_yaml
        data = yaml_safe_load(yamlstr)
      File "/opt/conda/lib/python3.7/site-packages/conda/common/serialize.py",line 67,in yaml_safe_load
        return yaml.safe_load(string,version="1.2")
      File "/opt/conda/lib/python3.7/site-packages/ruamel_yaml/main.py",line 980,in safe_load
        return load(stream,SafeLoader,version)
      File "/opt/conda/lib/python3.7/site-packages/ruamel_yaml/main.py",line 935,in load
        return loader._constructor.get_single_data()
      File "/opt/conda/lib/python3.7/site-packages/ruamel_yaml/constructor.py",line 108,in get_single_data
        return self.construct_document(node)
      File "/opt/conda/lib/python3.7/site-packages/ruamel_yaml/constructor.py",line 118,in construct_document
        for _dummy in generator:
      File "/opt/conda/lib/python3.7/site-packages/ruamel_yaml/constructor.py",line 691,in construct_yaml_map
        value = self.construct_mapping(node)
      File "/opt/conda/lib/python3.7/site-packages/ruamel_yaml/constructor.py",line 418,in construct_mapping
        return BaseConstructor.construct_mapping(self,node,deep=deep)
      File "/opt/conda/lib/python3.7/site-packages/ruamel_yaml/constructor.py",line 242,in construct_mapping
        value = self.construct_object(value_node,line 164,in construct_object
        data = constructor(self,node)
      File "/opt/conda/lib/python3.7/site-packages/ruamel_yaml/constructor.py",line 711,in construct_undefined
        node.start_mark,ruamel_yaml.constructor.ConstructorError: Could not determine a constructor for the tag 'tag:yaml.org,2002:python/tuple'
      in "<unicode string>",line 2,column 11:
        channels: !!python/tuple
                  ^ (line: 2)

`$ /opt/conda/bin/conda-env create -f environment.yml`

  environment variables:
            BINARIES_PATH=/opt/deeplearning/binaries
                 CIO_TEST=<not set>
  CONDA_AUTO_UPDATE_CONDA=false
        CONDA_DEFAULT_ENV=base
                CONDA_EXE=/opt/conda/bin/conda
CONDA_MKL_INTERFACE_LAYER_BACKUP=
             CONDA_PREFIX=/opt/conda
    CONDA_PROMPT_MODIFIER=(base)
         CONDA_PYTHON_EXE=/opt/conda/bin/python
               CONDA_ROOT=/opt/conda
              CONDA_SHLVL=1
           CURL_CA_BUNDLE=<not set>
              DL_BIN_PATH=/opt/deeplearning/bin
         DL_MetaDATA_PATH=/opt/deeplearning/Metadata
                  DL_PATH=/opt/deeplearning
        ENV_URI_FILE_PATH=/opt/deeplearning/Metadata/env_uri
    ENV_VERSION_FILE_PATH=/opt/deeplearning/Metadata/env_version
      FRAMEWORK_FILE_PATH=/opt/deeplearning/Metadata/framework
                 INFOPATH=/home/linuxbrew/.linuxbrew/share/info:
        JUPYTER_DEPS_PATH=/opt/deeplearning/jupyter
          LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/nccl2/lib:/usr/local/cuda/extras/CUPT
                          I/lib64
                  MANPATH=/home/linuxbrew/.linuxbrew/share/man:
                     PATH=/opt/conda/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbr
                          ew/sbin:/usr/local/cuda/bin:/opt/conda/bin:/opt/conda/condabin:/usr/lo
                          cal/bin:/usr/bin:/bin:/usr/local/games:/usr/games
               PYTHONPATH=/mnt/disks/mona/SlowFast/slowfast:
       REQUESTS_CA_BUNDLE=<not set>
RESTRICTION_TYPE_FILE_PATH=/opt/deeplearning/restriction
                 SRC_PATH=/opt/deeplearning/src
            SSL_CERT_FILE=<not set>
          TITLE_FILE_PATH=/opt/deeplearning/Metadata/title
           TUTORIALS_PATH=/opt/deeplearning/workspace/tutorials
        VERSION_FILE_PATH=/opt/deeplearning/Metadata/version
           WORKSPACE_PATH=/opt/deeplearning/workspace

     active environment : base
    active env location : /opt/conda
            shell level : 1
       user config file : /home/mona/.condarc
 populated config files : /opt/conda/.condarc
          conda version : 4.9.2
    conda-build version : not installed
         python version : 3.7.8.final.0
       virtual packages : __cuda=11.0=0
                          __glibc=2.28=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /opt/conda  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /opt/conda/pkgs
                          /home/mona/.conda/pkgs
       envs directories : /opt/conda/envs
                          /home/mona/.conda/envs
               platform : linux-64
             user-agent : conda/4.9.2 requests/2.24.0 cpython/3.7.8 Linux/4.19.0-13-cloud-amd64 debian/10 glibc/2.28
                UID:GID : 1016:1017
             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]: y
Upload successful.

Thank you for helping to improve conda.
Opt-in to always sending reports (and not see this message again)
by running

    $ conda config --set report_errors true


$ conda config --set report_errors true

$ conda env create -f environment.yml

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

    Traceback (most recent call last):
      File "/opt/conda/lib/python3.7/site-packages/conda/exceptions.py",column 11:
        channels: !!python/tuple
                  ^ (line: 2)

`$ /opt/conda/bin/conda-env create -f environment.yml`

  environment variables:
            BINARIES_PATH=/opt/deeplearning/binaries
                 CIO_TEST=<not set>
  CONDA_AUTO_UPDATE_CONDA=false
        CONDA_DEFAULT_ENV=base
                CONDA_EXE=/opt/conda/bin/conda
CONDA_MKL_INTERFACE_LAYER_BACKUP=
             CONDA_PREFIX=/opt/conda
    CONDA_PROMPT_MODIFIER=(base)
         CONDA_PYTHON_EXE=/opt/conda/bin/python
               CONDA_ROOT=/opt/conda
              CONDA_SHLVL=1
           CURL_CA_BUNDLE=<not set>
              DL_BIN_PATH=/opt/deeplearning/bin
         DL_MetaDATA_PATH=/opt/deeplearning/Metadata
                  DL_PATH=/opt/deeplearning
        ENV_URI_FILE_PATH=/opt/deeplearning/Metadata/env_uri
    ENV_VERSION_FILE_PATH=/opt/deeplearning/Metadata/env_version
      FRAMEWORK_FILE_PATH=/opt/deeplearning/Metadata/framework
                 INFOPATH=/home/linuxbrew/.linuxbrew/share/info:
        JUPYTER_DEPS_PATH=/opt/deeplearning/jupyter
          LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/nccl2/lib:/usr/local/cuda/extras/CUPT
                          I/lib64
                  MANPATH=/home/linuxbrew/.linuxbrew/share/man:
                     PATH=/opt/conda/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbr
                          ew/sbin:/usr/local/cuda/bin:/opt/conda/bin:/opt/conda/condabin:/usr/lo
                          cal/bin:/usr/bin:/bin:/usr/local/games:/usr/games
               PYTHONPATH=/mnt/disks/mona/SlowFast/slowfast:
       REQUESTS_CA_BUNDLE=<not set>
RESTRICTION_TYPE_FILE_PATH=/opt/deeplearning/restriction
                 SRC_PATH=/opt/deeplearning/src
            SSL_CERT_FILE=<not set>
          TITLE_FILE_PATH=/opt/deeplearning/Metadata/title
           TUTORIALS_PATH=/opt/deeplearning/workspace/tutorials
        VERSION_FILE_PATH=/opt/deeplearning/Metadata/version
           WORKSPACE_PATH=/opt/deeplearning/workspace

     active environment : base
    active env location : /opt/conda
            shell level : 1
       user config file : /home/mona/.condarc
 populated config files : /opt/conda/.condarc
                          /home/mona/.condarc
          conda version : 4.9.2
    conda-build version : not installed
         python version : 3.7.8.final.0
       virtual packages : __cuda=11.0=0
                          __glibc=2.28=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /opt/conda  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /opt/conda/pkgs
                          /home/mona/.conda/pkgs
       envs directories : /opt/conda/envs
                          /home/mona/.conda/envs
               platform : linux-64
             user-agent : conda/4.9.2 requests/2.24.0 cpython/3.7.8 Linux/4.19.0-13-cloud-amd64 debian/10 glibc/2.28
                UID:GID : 1016:1017
             netrc file : None
           offline mode : False


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

Upload successful.

这是我用来创建 conda 环境的存储库中的 environment.yml 文件

name: kinetics
channels: !!python/tuple
- !!python/unicode
  'defaults'
dependencies:
- joblib=0.9.4=py27_0
- menpo::ffmpeg=3.1.3=0
- mkl=2017.0.1=0
- numpy=1.12.1=py27_0
- openssl=1.0.2k=1
- pandas=0.19.2=np112py27_1
- pip=9.0.1=py27_1
- python=2.7.13=0
- python-dateutil=2.6.0=py27_0
- pytz=2017.2=py27_0
- readline=6.2=2
- setuptools=27.2.0=py27_0
- six=1.10.0=py27_0
- sqlite=3.13.0=0
- tk=8.5.18=0
- wheel=0.29.0=py27_0
- zlib=1.2.8=3
- pip:
  - decorator==4.0.11
  - olefile==0.44
  - youtube-dl==2017.6.5
prefix: /home/cabaf/.conda/envs/kinetics

解决方法

我遇到了同样的问题。删除 !!python/tuple!!python/unicode 不一定能解决问题。无需在 conda 环境中运行它。我 pip 安装了 ActivityNet/Crawler/Kinetics/download.py 顶部列出的所有软件包,使用 apt -y update && apt -y install ffmpeg 下载了 ffmpeg,并运行了 python download.py ./data/kinetics-400_train.csv ./DirName,这对我有用(我还通过添加 {{ 1}} 在 os.remove(output_filename) 中,当 ffmpeg 抛出错误时)。

,

似乎 environment.yml 是在 conda 使用 yaml.load 时编写的,但它 has since switched to yaml.safe_load

1.1.1 (2019-03-22)

使用 yaml.safe_load 而不是 yaml.load 删除 yaml 加载警告。 修复当包含为空时 NoneType 对象不可迭代错误。

您可以尝试从 !!python/tuple 中删除 !!python/unicode(还有 environment.yml,它没有任何作用)但是不清楚为什么它首先存在,它可能会给你另一个错误。

!!python/tuple 做了什么,它指示 YAML 加载以下序列而不是列表,而是元组。这样做的一个原因是当加载的值将用于散列数据结构(dict 或 set)时,因为元组是可散列的,而列表则不是。然而,这通常是在 YAML 文件中已经使用了值的映射时完成的,这里不是这种情况。

出现错误的原因是因为 yaml.safe_load 使用了安全加载器,它不像旧的“危险”加载器那样调用任意构造函数(因为这是一个安全问题)。因此,您不能使用它加载元组。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?