3 votes

Installation de Biopython

J'ai installé Python-biopython et l'ai utilisé avec succès dans mes scripts Python avec quelque chose comme :

import Bio

Mais il a fini par cesser de fonctionner et maintenant, même après désinstallation et réinstallation, je ne peux pas importer avec succès avec Python 2.7x. J'obtiens l'erreur suivante :

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named Bio

Sorties demandées :

Sortie de la politique apt-cache Python-biopython :

python-biopython:
  Installed: 1.63-1
  Candidate: 1.63-1
  Version table:
 *** 1.63-1 0
        500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
        100 /var/lib/dpkg/status

Résultat de find $(Python -c "import sys ; print ' \n .join(sys.path)") -type d -name 'Bio' :

find: `/home/alex/anaconda/lib/python27.zip': No such file or directory
find: `/home/alex/anaconda/lib/python2.7/lib-old': No such file or directory

Sortie de Python -c "import sys ; print ' \n '.join(sys.path)" Il ne semble pas que biopython soit répertorié :

/home/alex/anaconda/lib/python27.zip
/home/alex/anaconda/lib/python2.7
/home/alex/anaconda/lib/python2.7/plat-linux2
/home/alex/anaconda/lib/python2.7/lib-tk
/home/alex/anaconda/lib/python2.7/lib-old
/home/alex/anaconda/lib/python2.7/lib-dynload
/home/alex/anaconda/lib/python2.7/site-packages
/home/alex/anaconda/lib/python2.7/site-packages/Sphinx-1.3.1-py2.7.egg
/home/alex/anaconda/lib/python2.7/site-packages/cryptography-0.9.1-py2.7-linux-x86_64.egg
/home/alex/anaconda/lib/python2.7/site-packages/setuptools-18.1-py2.7.egg

Sortie de la politique apt-cache Python :

python:
  Installed: 2.7.5-5ubuntu3
  Candidate: 2.7.5-5ubuntu3
  Version table:
 *** 2.7.5-5ubuntu3 0
        500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
        100 /var/lib/dpkg/status

1voto

Byte Commander Points 99026

Je suppose que c'est un problème avec le PATH de Python. Il est probable que votre installation ne recherche pas les paquets dans le répertoire où Biopython installe ses fichiers.

Étape 1 - Vérification du PATH de Python et du répertoire d'installation de Biopython :

Veuillez vérifier le paramètre PATH de votre Python 2 avec la commande suivante :

python -c "import sys; print('\n'.join(sys.path))"

Selon le contenu de l'emballage de python-biopython version 1.64, il installera le Bio dans le répertoire du paquet /usr/lib/python2.7/dist-packages/ Si ce répertoire manque dans votre PATH Python, nous avons trouvé la cause de l'erreur.

Étape 2 - Essayer une solution temporaire :

Vous pouvez ajouter un répertoire à la variable PATH de Python en définissant la variable d'environnement de Shell. PYTHONPATH avant de lancer l'interprète :

PYTHONPATH="/usr/lib/python2.7/dist-packages" python

Dans cette session Python, vous devriez maintenant être capable d'utiliser le paquetage Biopython. Après avoir vérifié qu'il fonctionne, nous pouvons continuer avec...

Étape 3 - Rendre la réparation permanente :

Python possède un répertoire dans lequel il recherche les fichiers de configuration des chemins ( *.pth ). Nous trouvons quel est ce répertoire dans votre installation avec la commande :

PythonSiteDir=$(python -c "import site; site._script()" --user-site)
echo $PythonSiteDir

Cela stocke d'abord le chemin dans la variable $PythonSiteDir et l'envoie ensuite au terminal. Dans votre cas, il affichera probablement le répertoire /home/alex/anaconda/lib/python2.7/site-packages mais si ce n'est pas le cas, veuillez utiliser votre répertoire respectif à la place.

Nous devons placer nos clients .pth dans ce répertoire, donc nous nous assurons d'abord que nous n'écrasons pas accidentellement un fichier existant en vérifiant quels fichiers de configuration de chemin existent déjà ici. Pour éviter de trop taper, nous utilisons la variable que nous avons créée plus tôt :

ls ${PythonSiteDir}/*.pth

Tous les noms de fichiers affichés par cette commande existent déjà et ne peuvent pas être utilisés. En supposant que biopython_directory.pth n'était pas dans la liste, nous allons maintenant créer ce fichier et le laisser contenir le chemin où Biopython est installé :

echo "/usr/lib/python2.7/dist-packages" > ${PythonSiteDir}/biopython_directory.pth

C'est tout. La seule chose qui reste à faire maintenant est de tester si ça a marché. Vous pouvez soit recommencer à utiliser Biopython, soit vérifier le chemin Python actuel avec la commande ci-dessus :

python -c "import sys; print('\n'.join(sys.path))"

Source/inspiration pour l'étape 3 : <a href="https://stackoverflow.com/a/12311321/4464570">https://stackoverflow.com/a/12311321/4464570</a>

0voto

mgenome Points 1

J'aimerais répondre sous forme de commentaire, mais j'ai besoin d'une certaine réputation pour écrire des commentaires. Alors, j'écris ici.

J'utilise un système de qiime virtualbox prêt à l'emploi. Comme je le sais, dans ce système, QIIME utilise une méthode différente pour configurer les chemins. Dans le fichier ".bashrc", il utilise activate.sh comme suit

source /home/qiime/qiime_software/activate.sh

Dans le fichier activate.sh, vous trouverez les lignes suivantes

export PYTHONPATH=/home/qiime/.../:/home/qiime/.../:
/usr/local/lib/python2.7/dist-packages/`

Vous devez modifier le fichier en ajoutant ":/usr/local/lib/python2.7/dist-packages/" après les chemins d'accès et exécuter à nouveau le fichier en utilisant la commande suivante

source /home/iime/qiime_software/activate.sh

J'ai trouvé une solution grâce à votre question et votre réponse. Merci.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X