2017-09-27 2 views
12

J'essaie d'installer pysam.impossible d'exécuter 'x86_64-conda_cos6-linux-gnu-gcc': Aucun fichier ou répertoire (installation pysam)

Après excecuting:

python path/to/pysam-master/setup.py build 

Cette erreur est produite:

unable to execute 'x86_64-conda_cos6-linux-gnu-gcc': No such file or directory 
error: command 'x86_64-conda_cos6-linux-gnu-gcc' failed with exit status 1 

Il y a des fils semblables, mais ils semblent tous faire face au problème assumig droits de administriator, que je n'ai pas. Est-il possible d'installer les fichiers nécessaires?

AVIS DE NON-RESPONSABILITÉ: Cette question provient d'un article précédent. manually installing pysam error: "ImportError: No module named version" Mais comme cela pourrait nécessiter une approche différente, j'en ai fait une question à part.

+0

Cela a commencé à apparaître il y a quelques jours et semble encore être un problème. – NirIzr

+0

Avait le même problème. Faire 'conda update anaconda' résout le problème. Effectivement, il fallait mettre à jour les deux Python à la version '3.6.2-hdfe5801_15' et Anaconda à '5.0.0.1-py36hfb0b618_1 ' – adonese

Répondre

9

Il semble qu'Anaconda ait une nouvelle version (4.3.27) qui définit le chemin du compilateur C vers un exécutable inexistant (un bug assez embarrassant, je suis sûr qu'ils le répareront bientôt). J'ai eu un problème similaire avec l'installation pip en utilisant le dernier Miniconda, que j'ai corrigé en utilisant la version 4.3.21 et en m'assurant que je ne faisais pas quelque chose comme conda update conda.

Voir https://repo.continuum.io/miniconda/ qui a des dates de publication et des versions.

+0

Peut confirmer cela a fonctionné pour moi. J'ai installé ce qui me donnait des problèmes en premier, puis réinstallé spyder et tous les autres outils que je n'ai pas eu de problème d'installation puisque j'ai été forcé de mettre à jour après la première fois que j'ai couru 'conda install' – jamzsabb

+0

Ceci est correct. Merci Jon. Le problème est que python fait cuire plusieurs variables liées au compilateur au moment de la construction. Nous utilisons de nouveaux compilateurs, et ils sont "préfixés". gcc n'existe pas - seulement x86_64-conda_cos6-linux-gnu-gcc. Ceci est fait pour éviter les conflits, mais au prix de complication (et risque de bogues) De nouveaux paquets python seront bientôt disponibles. Ce problème est suivi sur https://github.com/conda/conda/issues/6030 – msarahan

+1

Un commentaire supplémentaire: vous pouvez télécharger les nouveaux compilateurs en tant que package gcc_linux-64. Il y a aussi gxx_linux-64 et gfortran_linux-64 - ils sont séparés. Cela pourrait vous aller plus loin. C'est vraiment destiné à être utilisé avec conda-build 3, mais ça fonctionnera probablement bien en dehors de conda-build. Assurez-vous simplement d'activer votre environnement. L'activation définit un grand nombre de variables d'environnement importantes qui font fonctionner le compilateur. Vous pouvez activer l'environnement racine - il suffit de taper '' source activate root'' – msarahan

-3

Quelque part dans votre $PATH (par exemple, ~/bin), ne

ln -sf $(which gcc) x86_64-conda_cos6-linux-gnu-gcc 

Ne pas mettre cela dans un répertoire système ou le répertoire bin de Conda, et rappelez-vous de supprimer le lien lorsque le problème est résolu en amont. gcc --version devrait être la version 6.

EDIT: Je comprends le sentiment dans les commentaires contre les chemins de système de manipulation, mais on peut peut-être utiliser un peu de réflexion critique pour le cas réel à la main avant de réciter la doctrine. Qu'avons-nous réellement fait avec la commande ci-dessus? Rien de plus que de mettre un exécutable (lien symbolique) appelé x86_64-conda_cos6-linux-gnu-gcc dans son répertoire personnel ~/bin.

Si mettre quelque chose dans un répertoire de ~/bin personnel cassé futur conda (après il fixe le chemin du compilateur C pour pointer vers gcc il intègre), alors ce serait un bug avec conda. Est-ce que l'existence de ce compilateur verbalement nommé gâcherait quoi que ce soit d'autre? Peu probable non plus. Même si quelque chose l'a ramassé, c'est juste votre système gcc après tout ...

+0

Maintenant j'arrive à la même erreur mais différemment: 'cc1: erreur: option de ligne de commande non reconnue" -fstack-protector-strong " cc1: erreur: option de ligne de commande non reconnue "-fno-plt" pysam/libchtslib.c: 1: erreur: mauvaise valeur (haswell) pour -mtune = commutateur erreur: la commande 'x86_64-conda_cos6-linux-gnu-gcc' a échoué avec l'état de sortie 1' –

+1

Je recommande de ne pas jouer au hasard avec des liens symboliques pour résoudre ce type de problème. Jon Riehl a mentionné l'existence d'un bug et d'une bonne solution au problème (en utilisant une conda antérieure). –

+0

@ Sergio.pv Vous devez probablement mettre à jour gcc. Vérifiez 'gcc --version' et assurez-vous qu'il y en a au moins 6. –

2

Il devrait maintenant être sûr de mettre à jour la conda. Ceci est fixé dans les paquets de python suivants pour Linux-64:

  • python-3.6.2-h0b30769_14.tar.bz2
  • python-2.7.14-h931c8b0_15.tar.bz2
  • python-2,7 .13-hac47a24_15.tar.bz2
  • python-3.5.4-hc053d89_14.tar.bz2

La question était comme Jon Riehl décrit - nous (Anaconda, anciennement Continuum) construire tous nos forfaits avec un nouveau paquet GCC que nous avons créé en utilisant crosstool-ng. Ce paquet n'a pas gcc, il a un préfixe gcc - la commande manquante que vous voyez, x86_64-conda_cos6-linux-gnu-gcc.Ceci est cuit dans python, et toute extension construite avec ce python va chercher ce compilateur. Nous avons corrigé le problème en utilisant la variable _PYTHON_SYSCONFIGDATA_NAME qui a été ajoutée à python 3.6. Nous avons rétroporté cela à python 2.7 et 3.5. Vous ne verrez plus que Python en utilisant les compilateurs par défaut (gcc), et vous devrez définir le _PYTHON_SYSCONFIGDATA_NAME au nom de fichier approprié pour que les nouveaux compilateurs soient utilisés. La définition de cette variable est quelque chose que nous allons mettre dans les scripts d'activation pour le paquet du compilateur, donc vous n'aurez jamais à vous en préoccuper. Cependant, il peut nous prendre un jour ou deux pour obtenir de nouveaux paquets de compilateurs, alors postez des problèmes sur le traqueur de problèmes de conda-build si vous souhaitez utiliser les nouveaux compilateurs et avoir besoin d'aide pour démarrer.

changements de code pertinents sont à:

+1

Miniconda n'a pas encore été mise à jour. Il sera versionné comme 4.3.27.1. Nous aurons de nouveaux installateurs quand nous le pourrons. Pour l'instant, si vous faites toujours '' conda update conda && conda update python'' vous devriez avoir une bonne version. – msarahan

+0

Je reçois la même erreur: 'incapable d'exécuter « x86_64-conda_cos6-linux-gnu-gcc »: Aucun fichier ou directory' avec la dernière version de miniconda (de https://repo.continuum.io/miniconda /Miniconda3-latest-Linux-x86_64.sh). L'erreur est générée lors de l'installation de 'ggplot2' dans R (r-base v3.4.2 installé via conda). J'utilise conda v4.3.30 et python v3.6.3. J'ai essayé d'utiliser conda v4.3.21, mais cela n'a pas aidé. Des idées sur ce qui ne va pas? – sharchaea

+3

'conda créer -n renvoyer r-essentials = 1.7.0 gcc_linux-64' puis' source activer renv' et c'est parti. Nous n'avons pas rendu les compilateurs dépendants de r-base car tout le monde ne veut pas compiler des choses depuis la source. –

4

Vous pouvez également recevoir la même erreur lors de l'installation des packages R si R a été installé en utilisant conda (comme je l'ai fait).

Ensuite, installez simplement le paquet en exécutant: conda install gxx_linux-64 pour avoir cette commande disponible.

Source: https://github.com/RcppCore/Rcpp/issues/770#issuecomment-346716808

+0

Merci pour cela, je suis sur Anaconda 4.4.7, récemment installé, une mise à jour complète n'a montré rien de nouveau, votre réponse a résolu mon problème. (nécessaire pour 'installer gfortran_linux-64' aussi bien pour le paquet que j'installais) – JimLohse