问题描述:
执行
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博客
参考: