2017-05-18 4 views
1

J'ai un paquet sur Bitbucket qui contient des fichiers de code en Python, R et bash. J'utilise un ordinateur portable sous Linux CentOS 7.Erreur lors de la création d'une recette conda à partir d'un paquet Bitbucket

Je voudrais créer un conda package pour cela. J'ai commencé par créer une recette de conda, mais j'ai probablement fait quelques erreurs. J'utilise la conda 4.3.18. J'ai essayé de construire ma recette de Conda avec la commande suivante, mais il a généré plusieurs erreurs que je ne peux pas interpréter:

$ conda build behst_conda_recipe/ 

BUILD START: behst--0 
pulling from https://bitbucket.org/PROJECT_ADDRESS 
searching for changes 
no changes found 
checkout: 'tip' 
updating to branch default 
108 files updated, 0 files merged, 0 files removed, 0 files unresolved 
0 files updated, 0 files merged, 0 files removed, 0 files unresolved 
Package: behst--0 
source tree in: /home/davide/miniconda3/conda-bld/behst_1495134385344/work 
+ source /home/davide/miniconda3/bin/activate /home/davide/miniconda3/conda-bld/behst_1495134385344/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac 
+ set -o nounset -o pipefail -o errexit 
+ set -o xtrace 
+ echo 'Running build.sh' 
Running build.sh 
INFO conda_build.build:bundle_conda(861): Packaging behst--0 
number of files: 0 
Fixing permissions 
Fixing permissions 
Traceback (most recent call last): 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/conda_build/utils.py", line 133, in _copy_with_shell_fallback 
    stderr=subprocess.PIPE, stdout=subprocess.PIPE) 
    File "/home/davide/miniconda3/lib/python3.5/subprocess.py", line 581, in check_call 
    raise CalledProcessError(retcode, cmd) 
subprocess.CalledProcessError: Command 'cp -a /home/davide/miniconda3/conda-bld/behst_1495134385344/work/LICENSE /home/davide/miniconda3/conda-bld/behst_1495134385344/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/info/LICENSE.txt' returned non-zero exit status 1 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "/home/davide/miniconda3/bin/conda-build", line 6, in <module> 
    sys.exit(conda_build.cli.main_build.main()) 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/conda_build/cli/main_build.py", line 334, in main 
    execute(sys.argv[1:]) 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/conda_build/cli/main_build.py", line 325, in execute 
    noverify=args.no_verify) 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/conda_build/api.py", line 97, in build 
    need_source_download=need_source_download, config=config) 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/conda_build/build.py", line 1518, in build_tree 
    config=config) 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/conda_build/build.py", line 1154, in build 
    built_package = bundlers[output_dict.get('type', 'conda')](output_dict, m, config, env) 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/conda_build/build.py", line 893, in bundle_conda 
    create_info_files(metadata, files, config=config, prefix=config.build_prefix) 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/conda_build/build.py", line 494, in create_info_files 
    copy_license(m, config) 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/conda_build/build.py", line 272, in copy_license 
    locking=config.locking) 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/conda_build/utils.py", line 177, in copy_into 
    _copy_with_shell_fallback(src, dst_fn) 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/conda_build/utils.py", line 136, in _copy_with_shell_fallback 
    raise OSError("Failed to copy {} to {}. Error was: {}".format(src, dst, e)) 
OSError: Failed to copy /home/davide/miniconda3/conda-bld/behst_1495134385344/work/LICENSE to /home/davide/miniconda3/conda-bld/behst_1495134385344/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/info/LICENSE.txt. Error was: Command 'cp -a /home/davide/miniconda3/conda-bld/behst_1495134385344/work/LICENSE /home/davide/miniconda3/conda-bld/behst_1495134385344/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/info/LICENSE.txt' returned non-zero exit status 1 
Exception ignored in: <bound method BaseFileLock.__del__ of <filelock.UnixFileLock object at 0x7f30df7349e8>> 
Traceback (most recent call last): 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/filelock.py", line 305, in __del__ 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/filelock.py", line 292, in release 
    File "/home/davide/miniconda3/lib/python3.5/site-packages/filelock.py", line 371, in _release 
AttributeError: 'NoneType' object has no attribute 'flock' 

Est-ce que quelqu'un sait ce que ces erreurs signifient?

EDIT: Voici le fichier meta.yaml:

package: 

    name: behst 

source: 

    hg_url: https://bitbucket.org/PROJECT_ADDRESS 

about: 

    home: https://bitbucket.org/PROJECT_ADDRESS 
    license: BSD 
    license_file: LICENSE 

Alors que le build.sh au moment est juste une commande echo:

#!/bin/bash 
# 
#$ -cwd 
#$ -S /bin/bash 
# 
set -o nounset -o pipefail -o errexit 
set -o xtrace 

echo "Running build.sh" 
+0

Vous devez joindre la recette et le script build.sh. – ilmarinen

+0

Je courrais ' 'cp -a/home/davide/miniconda3/Conda-bld/behst_1495134385344/travail/licence/home/davide/miniconda3/Conda-bld/behst_1495134385344/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/info/LICENSE.txt'' manuellement et vérifier ça sort. – grundic

+0

@grundic J'ai essayé, le système dit 'nom de fichier trop long'' –

Répondre

0

Avez-vous votre répertoire personnel crypté? Voici relatedissues sur github. La solution consiste à utiliser --croot argument pointant quelque part à l'extérieur de votre maison, par exemple./tmp/_conda_build_.

+0

J'ai essayé 'conda build behst_conda_recipe/--croot ../ temp_conda_recipe', et j'ai obtenu cette nouvelle erreur:' arbre source dans: ../temp_conda_recipe/behst_1495144731757/work /bin/bash: ../temp_conda_recipe/behst_1495144731757/work /conda_build.sh: Aucun fichier ou répertoire de ce type 'Savez-vous comment résoudre ce problème? merci –

0

Vous semblez avoir votre répertoire personnel crypté. La longueur du caractère lors du traitement d'un dossier chiffré est réduite par rapport à la longueur normale de 255 caractères.

D'où la seule solution, même par les contributeurs de Conda, est d'utiliser --croot avec un emplacement non crypté comme/tmp/whateverfolder

conda config --prepend pkgs_dirs /tmp/temp_conda_recipe 

puis

conda build behst_conda_recipe/ --croot /tmp/temp_conda_recipe 
+0

Merci, mais cela n'a pas fonctionné. Voici l'erreur du journal: 'subprocess.CalledProcessError: cp » commande -a/tmp/tmp/behst_1495547326227/travail/licence/tmp/tmp/behst_1495547326227/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/info/LICENCE.txt 'retourné non-nul état de sortie 1' –

+0

pouvez-vous me faire savoir si conda vous permet de faire ceci: 'conda config --prep pkgs_dirs/chemin/vers/custom/dir/pkgs' –

+0

Si je cours cette commande , rien ne se passe –