Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

installing Mayavi with pip - no module named vtk

I want to use Mayavi.

Situation

  • I use a MacBook Air, with OSX 10.7.3.
  • I use Python 2.7.2
  • I have virtualenv installed. But I have not used it for this installation.

I've manually installed all it's dependencies, including VTK.

For VTK, I followed its installation guide and installed the python wrapper.

Now if I open a new terminal window and open python, I can import vtk without any error.

Problem

I try to install Mayavi with the following command:

pip install mayavi 

But the following error occurs:

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' 

I think the problem is with vtk.

Can anyone help me?

Other Details

Running sudo pip install mayavi does not solve the problem.

I thought this might help

› 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'> >>>  

My PYTHONPATH is empty.

like image 301
Yasser Souri Avatar asked Aug 29 '12 16:08

Yasser Souri


1 Answers

I'm on Debian but this should work for you as well

I was stuck with installing vtk into a virtualenv, after hours of search with no results I did the following and it worked.

  1. install python-vtk from repositories systemwide

  2. copy vtk folder from /usr/lib/pymodules/python2.7 to /PATH/TO/YOUR/VIRTUALENV/lib/python2.7/site-packages

In your case the system-wide python packages folder would probably be different but you can easily find it by firing up system python and entering the following:

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

After this trick mayavi was succesfully installed into my virtualenv using pip install mayavi and pip install envisage.

Edit: instead of copying it might better to just symlink the folder in step 2

like image 195
Hennadii Madan Avatar answered Oct 12 '22 19:10

Hennadii Madan