installation de Mayavi avec pip - aucun module nommé vtk

je veux utiliser Mayavi.

Situation

  • J'utilise un MacBook Air, avec OSX 10.7.3.
  • j'utilise Python 2.7.2
  • j'ai virtualenv installé. Mais je n'ai pas utilisé pour cette installation.

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

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

Maintenant, si j'ouvre un nouveau terminal fenêtre et ouvrez python, je peux importer vtk sans aucune 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('rn', '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('rn', '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écution sudo pip install mayavi ne résout pas le problème.

j'ai pensé 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'>
>>> 

Mon PYTHONPATH est vide.

28
demandé sur Zero Piraeus 2012-08-29 20:03:29

6 réponses

pip utilise probablement unpython, sorte de vous avez vtk installé à l'aide de /usr/local/bin/python, alors que votre pip binaire /usr/bin/python.

Vérifier:

$ head -n1 $(which pip)

pour l'obtenir résolu, vous pouvez choisir d'utiliser un virtualenv, ou installer pip en utilisant /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
répondu Hugo Tavares 2012-08-30 23:09:38

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ésultats j'ai fait ce qui suit et ça a fonctionné.

  1. installer python-vtk à partir des dépôts à l'échelle du système

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

dans votre cas, les paquets python à l'échelle du système dossier serait probablement différent, mais vous pouvez facilement le trouver en tirant jusqu'système de python et en entrant la commande suivante:

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

après cette astuce, mayavi a été installé avec succès dans mon virtualenv en utilisant pip install mayavi et pip install envisage.

Edit: au lieu de copier, Il serait peut-être préférable de simplement faire un lien symbolique avec le dossier à l'étape 2

16
répondu Hennadii Madan 2017-02-14 16:30:49

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 - exécuter sudo apt-get install python-vtk corrigé le problème et j'ai pu exécuter avec succès pip install mayavi après cela.

8
répondu Alex 2014-05-18 00:08:17

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 directory vers /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. python -c "import vtk", si elle échoue encore, passez à l'étape 3

  3. l'erreur d'importation peut être causée par la perte du dossier paquet vtk dans votre python actuel, donc nous devrions trouver le dossier vtk et le copier dans votre Python actuel(le plus possible le python dans le répertoire de pyenv shims)'s directory .

    le chemin du dossier vtk dans mon ubuntu est

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

    il suffit de copier le vtk le dossier de votre python actuel /site-packages, e.g.

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

  5. si aucune erreur d'importation, faites

    pip install mayavi
    
3
répondu PytLab 2016-10-28 08:45:32

j'ai insisté dans sudo installer à plusieurs reprises, a finalement obtenu résolu, je ne sais pas comment l'expliquer.

sudo python2 -m pip install mayavi

sudo python3 -m pip install mayavi
0
répondu Paul Chen 2018-06-25 20:59:34

j'ai installé vtk à l'aide de Homebrew:

$ brew install vtk

espérons que cette aide.

-1
répondu Tomas 2017-02-14 16:25:49