web-dev-qa-db-fra.com

installation de Mayavi avec pip - pas de module nommé vtk

Je veux utiliser Mayavi.

Situation

  • J'utilise un MacBook Air sous OSX 10.7.3.
  • J'utilise Python 2.7.2
  • J'ai installé virtualenv. Mais je ne l'ai pas utilisé pour cette installation.

J'ai manuellement installé toutes ses dépendances, y compris VTK.

Pour VTK, j'ai suivi son guide d'installation et installé le wrapper Python.

Maintenant, si j’ouvre une nouvelle fenêtre de terminal et python, je peux importer vtk sans erreur.

Problème

J'essaie d'installer Mayavi avec la commande suivante:

pip install mayavi

Mais l'erreur suivante se produit:

Downloading/unpacking mayavi
  Running setup.py Egg_info for package mayavi
    build_src
    building extension "tvtk.array_ext" sources
    building data_files sources
    build_src: building npy-pkg config files

    no previously-included directories found matching 'artwork'
    no previously-included directories found matching 'docs/pdf'
Requirement already satisfied (use --upgrade to upgrade): apptools in /Library/Python/2.7/site-packages (from mayavi)
Requirement already satisfied (use --upgrade to upgrade): traits in /Library/Python/2.7/site-packages (from mayavi)
Requirement already satisfied (use --upgrade to upgrade): traitsui in /Library/Python/2.7/site-packages (from mayavi)
Requirement already satisfied (use --upgrade to upgrade): configobj in /Library/Python/2.7/site-packages (from apptools->mayavi)
Requirement already satisfied (use --upgrade to upgrade): pyface in /Library/Python/2.7/site-packages (from traitsui->mayavi)
Installing collected packages: mayavi
  Running setup.py install for mayavi
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/Users/Yasser/build/mayavi/setup.py", line 498, in <module>
        **config
      File "/Library/Python/2.7/site-packages/numpy-1.6.1-py2.7-macosx-10.7-intel.Egg/numpy/distutils/core.py", line 186, in setup
        return old_setup(**new_attr)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 152, in setup
        dist.run_commands()
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
        self.run_command(cmd)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "/Library/Python/2.7/site-packages/numpy-1.6.1-py2.7-macosx-10.7-intel.Egg/numpy/distutils/command/install.py", line 57, in run
        r = self.setuptools_run()
      File "/Library/Python/2.7/site-packages/numpy-1.6.1-py2.7-macosx-10.7-intel.Egg/numpy/distutils/command/install.py", line 31, in setuptools_run
        return old_install_mod._install.run(self)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/install.py", line 573, in run
        self.run_command('build')
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command
        self.distribution.run_command(command)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "/Users/Yasser/build/mayavi/setup.py", line 303, in run
        build_tvtk_classes_Zip()
      File "/Users/Yasser/build/mayavi/setup.py", line 290, in build_tvtk_classes_Zip
        gen_tvtk_classes_Zip()
      File "tvtk/setup.py", line 46, in gen_tvtk_classes_Zip
        from code_gen import TVTKGenerator
      File "tvtk/code_gen.py", line 10, in <module>
        import vtk
    ImportError: No module named vtk
    Complete output from command /usr/bin/python -c "import setuptools;__file__='/Users/Yasser/build/mayavi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/53/_trhc_0x0fb6kvx6bw_wrk500000gn/T/pip-Z4hpsW-record/install-record.txt:
    running install

running build

Traceback (most recent call last):

  File "<string>", line 1, in <module>

  File "/Users/Yasser/build/mayavi/setup.py", line 498, in <module>

    **config

  File "/Library/Python/2.7/site-packages/numpy-1.6.1-py2.7-macosx-10.7-intel.Egg/numpy/distutils/core.py", line 186, in setup

    return old_setup(**new_attr)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 152, in setup

    dist.run_commands()

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands

    self.run_command(cmd)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command

    cmd_obj.run()

  File "/Library/Python/2.7/site-packages/numpy-1.6.1-py2.7-macosx-10.7-intel.Egg/numpy/distutils/command/install.py", line 57, in run

    r = self.setuptools_run()

  File "/Library/Python/2.7/site-packages/numpy-1.6.1-py2.7-macosx-10.7-intel.Egg/numpy/distutils/command/install.py", line 31, in setuptools_run

    return old_install_mod._install.run(self)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/install.py", line 573, in run

    self.run_command('build')

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command

    self.distribution.run_command(command)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command

    cmd_obj.run()

  File "/Users/Yasser/build/mayavi/setup.py", line 303, in run

    build_tvtk_classes_Zip()

  File "/Users/Yasser/build/mayavi/setup.py", line 290, in build_tvtk_classes_Zip

    gen_tvtk_classes_Zip()

  File "tvtk/setup.py", line 46, in gen_tvtk_classes_Zip

    from code_gen import TVTKGenerator

  File "tvtk/code_gen.py", line 10, in <module>

    import vtk

ImportError: No module named vtk

----------------------------------------
Command /usr/bin/python -c "import setuptools;__file__='/Users/Yasser/build/mayavi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/53/_trhc_0x0fb6kvx6bw_wrk500000gn/T/pip-Z4hpsW-record/install-record.txt failed with error code 1 in /Users/Yasser/build/mayavi
Storing complete log in /Users/Yasser/Library/Logs/pip.log
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 8, in <module>
    load_entry_point('pip==1.1', 'console_scripts', 'pip')()
  File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.Egg/pip/__init__.py", line 116, in main
    return command.main(args[1:], options)
  File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.Egg/pip/basecommand.py", line 141, in main
    log_fp = open_logfile(log_fn, 'w')
  File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.Egg/pip/basecommand.py", line 168, in open_logfile
    log_fp = open(filename, mode)
IOError: [Errno 13] Permission denied: '/Users/Yasser/Library/Logs/pip.log'

Je pense que le problème est avec vtk.

Quelqu'un peut-il m'aider?

Autres détails

Exécuter Sudo pip install mayavi ne résout pas le problème.

Je pensais que cela pourrait aider

› which python
/usr/local/bin/python

› python
Python 2.7.2 (default, Feb 17 2012, 13:57:55) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import vtk
>>> vtk
<module 'vtk' from '/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/VTK-5.10.0-py2.7.Egg/vtk/__init__.pyc'>
>>> 

Ma PYTHONPATH est vide.

29
Yasser Souri

Votre pip utilise probablement un python différent, de sorte que vous avez vtk installé à l'aide de /usr/local/bin/python, tandis que votre binaire pip utilise /usr/bin/python.

Vérifie ça:

$ head -n1 $(which pip)

Pour le résoudre, vous pouvez choisir d'utiliser virtualenv ou installer pip à l'aide de /usr/local/bin/python:

curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | /usr/local/bin/python

Pour plus d’instructions d’installation, voir http://www.pip-installer.org/en/latest/installing.html

10
Hugo Tavares

Je suis sur Debian mais cela devrait fonctionner pour vous aussi

J'étais coincé avec l'installation de vtk dans un virtualenv, après des heures de recherche sans résultat, j'ai fait ce qui suit et cela a fonctionné.

  1. installer python-vtk à partir de référentiels dans tout le système

  2. copier le dossier vtk de /usr/lib/pymodules/python2.7 dans /PATH/TO/YOUR/VIRTUALENV/lib/python2.7/site-packages

Dans votre cas, le dossier des paquets python à l’échelle du système serait probablement différent, mais vous pouvez le trouver facilement en activant python système et en entrant ce qui suit:

import vtk,sys
print(sys.modules['vtk'])

Après cette astuce, mayavi a été installé avec succès dans mon environnement virtuel à l’aide de pip install mayavi et pip install est envisagé. 

Edit: au lieu de le copier, il pourrait être préférable de simplement créer un lien symbolique vers le dossier à l'étape 2.

16
Hennadii Madan

J'ai eu le même problème et la première réponse ne m'a pas aidé parce que pip était dans le bon répertoire, mais il s'est avéré que je n'avais pas installé vtk. pour exécuter avec succès installer pip mayavi après cela.

8
Alex

J'ai eu le même problème lors de l'installation de mayavi avec python installé dans pyenv, et j'ai résolu ce problème en copiant le répertoire dans /home/myname/.pyenv/versions/2.7.12/lib/python2.7/site-packages. Voici ma méthode:

  1. installer vtk et python-vtk

    Sudo apt-get install vtk6
    Sudo apt-get install python-vtk
    
  2. essayez python -c "import vtk", en cas d'échec, passez à l'étape 3

  3. l'erreur d'importation peut être causée par la perte du dossier du paquet vtk dans votre python actuel. Nous devons donc trouver le dossier vtk et le copier dans le répertoire de votre python actuel (le plus possible est celui de python dans pyenv shims).

    le chemin du dossier vtk dans mon Ubuntu est

    /usr/lib/python2.7/dist-packages/vtk
    

    copiez simplement le dossier vtk dans le /site-packages de votre python actuel, par exemple. 

    cp -r /usr/lib/python2.7/dist-packages/vtk /home/myname/pyenv/versions/2.7.12/lib/python2.7/site-packages
    
  4. essayez à nouveau python -c "import vtk".

  5. si aucune erreur d'importation, il suffit de faire

    pip install mayavi
    
3
PytLab

J'ai insisté dans Sudo installer plusieurs fois, finalement résolu, je ne sais pas comment expliquer.

Sudo python2 -m pip install mayavi

Sudo python3 -m pip install mayavi
1
Paul Chen