python - mlab mayavi
instalando Mayavi con pip-no hay módulo llamado vtk (6)
Quiero usar Mayavi.
Situación
- Yo uso un MacBook Air, con OSX 10.7.3.
- Yo uso Python 2.7.2
- Tengo
virtualenv
instalado. Pero no lo he usado para esta instalación.
He instalado manualmente todas sus dependencias, incluyendo VTK
.
Para VTK
, seguí su guía de instalación e instalé la envoltura de python.
Ahora, si abro una nueva ventana de terminal y abro Python, puedo importar vtk
sin ningún error.
Problema
Intento instalar Mayavi con el siguiente comando:
pip install mayavi
Pero se produce el siguiente error:
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''
Creo que el problema es con vtk
.
¿Alguien puede ayudarme?
Otros detalles
Ejecutar sudo pip install mayavi
no resuelve el problema.
Pensé que esto podría ayudar
› 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''>
>>>
Mi PYTHONPATH
está vacío.
Es probable que su pip
esté usando un python
diferente, una especie de vtk
instalado usando /usr/local/bin/python
, mientras que su binario pip
usa /usr/bin/python
.
Revisalo:
$ head -n1 $(which pip)
Para resolverlo, puedes elegir usar un virtualenv
o instalar pip
usando /usr/local/bin/python
:
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | /usr/local/bin/python
Para obtener más instrucciones de instalación, consulte http://www.pip-installer.org/en/latest/installing.html
Estoy en Debian pero esto debería funcionar para ti también
Me quedé atascado con la instalación de vtk en un virtualenv, después de horas de búsqueda sin resultados, hice lo siguiente y funcionó.
instala python-vtk desde repositorios de todo el sistema
copie la carpeta vtk de /usr/lib/pymodules/python2.7 a /PATH/TO/YOUR/VIRTUALENV/lib/python2.7/site-packages
En su caso, la carpeta de paquetes de python de todo el sistema probablemente sería diferente, pero puede encontrarla fácilmente activando el sistema python e ingresando lo siguiente:
import vtk,sys
print(sys.modules[''vtk''])
Después de este truco, mayavi se instaló con éxito en mi virtualenv usando pip install mayavi y pip install imagine.
Edición: en lugar de copiarlo, es mejor que solo se vincule simbólicamente la carpeta en el paso 2
Insistí en instalar sudo
varias veces, finalmente lo resolví, no sé cómo explicarlo.
sudo python2 -m pip install mayavi
sudo python3 -m pip install mayavi
Instalé vtk utilizando Homebrew:
$ brew install vtk
espero que esto ayude.
Tuve el mismo problema al instalar mayavi con python instalado en pyenv, y resolví este problema copiando el directorio en /home/myname/.pyenv/versions/2.7.12/lib/python2.7/site-packages
, a continuación está mi método:
instalar
vtk
ypython-vtk
sudo apt-get install vtk6 sudo apt-get install python-vtk
prueba
python -c "import vtk"
, si falla nuevamente, ve al paso 3el error de importación puede deberse a la pérdida de la carpeta del paquete vtk en su python actual, por lo que deberíamos encontrar la carpeta vtk y copiarla en el directorio de python actual (lo más posible el python en el directorio de pyenv shims).
la ruta de la carpeta vtk en mi ubuntu es
/usr/lib/python2.7/dist-packages/vtk
simplemente copie la carpeta
vtk
a los/site-packages
python actuales, por ejemplo,cp -r /usr/lib/python2.7/dist-packages/vtk /home/myname/pyenv/versions/2.7.12/lib/python2.7/site-packages
intente
python -c "import vtk"
nuevo.Si no hay error de importación, simplemente hazlo.
pip install mayavi
Tuve el mismo problema y la primera respuesta no me ayudó porque pip estaba en el directorio correcto, pero resultó que no tenía instalado vtk - ejecutando sudo apt-get install python-vtk solucioné el problema y pude para ejecutar con éxito pip instalar mayavi después de eso.