I am trying to download the Kinetics-600 dataset for activity recognition and for that I am following the instructions in this repo: https://github.com/activitynet/ActivityNet
However, at the step conda env create -f environment.yml
I get this error:
ruamel_yaml.constructor.ConstructorError: could not determine a constructor for the tag 'tag:yaml.org,2002:python/tuple' in "", line 2, column 11: channels: !!python/tuple
How should I fix this error?
A full report of the error is:
(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, deep=deep)
File "/opt/conda/lib/python3.7/site-packages/ruamel_yaml/constructor.py", 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", 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, deep=deep)
File "/opt/conda/lib/python3.7/site-packages/ruamel_yaml/constructor.py", 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
/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.
Here is the environment.yml
file in the repo that I using to create the conda environment:
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
It seems that the environment.yml
was written at a time when conda used yaml.load
but it has since switched to yaml.safe_load
:
1.1.1 (2019-03-22)
Remove yaml load warnings by using yaml.safe_load instead of yaml.load. Fix NoneType object is not iterable error when includes is empty.
You can try to remove !!python/tuple
(and also !!python/unicode
, that doesn't do anything) from the environment.yml
however it is unclear why it is there in the first place, it may give you another error.
What !!python/tuple
does it that it instructs YAML to load the following sequence not as list, but as tuple. One reason why one would do that is when the loaded value will be used in a hashed data structure (dict or set), since tuples are hashable while lists aren't. However that is usually done when the value is already used an a mapping within the YAML file, which is not the case here.
The reason why you get the error is because yaml.safe_load
uses the safe loader, which does not, like the old „dangerous“ loader, call arbitrary constructors (as that is a security problem). Therefore, you cannot load tuples with it.
I ran into the same problem. Removing !!python/tuple
and !!python/unicode
does not necessarily fix the problem. There's no need to run it in a conda environment. I pip installed all the packages that are listed in the top of ActivityNet/Crawler/Kinetics/download.py
, downloaded ffmpeg using apt -y update && apt -y install ffmpeg
, and ran python download.py ./data/kinetics-400_train.csv ./DirName
and that worked for me (I also edited the code by adding os.remove(output_filename)
in download.py
when ffmpeg throws an error).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With