Mayavi: pip install mayavi falhou

Criado em 22 abr. 2016  ·  10Comentários  ·  Fonte: enthought/mayavi

Em um ambiente virtual limpo (com Python 2.7, Linux 64 bits), verificar o repositório e fazer python setup.py install funciona, mas não com pip install .

Supondo que você também tenha instalado o vtk (aqui, experimentei o vtkPython 6.3.0 baixado de vtk.org)

$ pip install numpy
$ pip install mayavi

...[skip many lines]...
  ----------------------------------------------------------------------
  Building TVTK classes... vtkGeoTreeNode: Ignoring method: Get/SetStatus
  default: 0, range: None

...[skip more lines]...

  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-build-TXVQcu/mayavi/setup.py", line 476, in <module>
      **config
    File "/home/kit/.virtualenvs/test/local/lib/python2.7/site-packages/numpy/distutils/core.py", line 169, in setup
      return old_setup(**new_attr)
    File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
      dist.run_commands()
    File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
      self.run_command(cmd)
    File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
      cmd_obj.run()
    File "/home/kit/.virtualenvs/test/local/lib/python2.7/site-packages/wheel/bdist_wheel.py", line 179, in run
      self.run_command('build')
    File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
      self.distribution.run_command(command)
    File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-TXVQcu/mayavi/setup.py", line 308, in run
      build_tvtk_classes_zip()
    File "/tmp/pip-build-TXVQcu/mayavi/setup.py", line 294, in build_tvtk_classes_zip
      gen_tvtk_classes_zip()
    File "tvtk/setup.py", line 66, in gen_tvtk_classes_zip
      import numpy
    File "/tmp/pip-build-TXVQcu/mayavi/tvtk/code_gen.py", line 117, in generate_code
      self._write_wrapper_class(node, tvtk_name)
    File "/tmp/pip-build-TXVQcu/mayavi/tvtk/code_gen.py", line 207, in _write_wrapper_class
      self.wrap_gen.generate_code(node, out)
    File "/tmp/pip-build-TXVQcu/mayavi/tvtk/wrapper_gen.py", line 84, in generate_code
      self._gen_methods(node, out)
    File "/tmp/pip-build-TXVQcu/mayavi/tvtk/wrapper_gen.py", line 195, in _gen_methods
      get_set = self._gen_get_set_methods(klass, out)
    File "/tmp/pip-build-TXVQcu/mayavi/tvtk/wrapper_gen.py", line 702, in _gen_get_set_methods
      print("default: %s, range: None"%default)
  UnicodeEncodeError: 'ascii' codec can't encode character u'\U000a000d' in position 9: ordinal not in range(128)
bug

Comentários muito úteis

Eu tive o mesmo problema com Python 3.6.3 no Windows-7 e set LC_ALL=C.UTF-8 na linha de comando não ajudou. Editei manualmente o código-fonte no arquivo tvtk/code_gen.py para substituir todos
open(<filename>, 'w')
para
open(<filename>, 'w', encoding='utf-8')

e fez um pip install <sourcedir> para contornar isso.

Todos 10 comentários

Trabalhando nisso.

Tentei reproduzir o problema, mas não consegui. Verificando em seu computador.

Novamente, não consigo reproduzir, mas vejo potencial para um problema. a solicitação pull # 355 deve resolver.

PR mesclado. Fechando

Pelo que eu posso dizer, isso deve ser corrigido no 4.5.0? Estou tendo um problema semelhante:

----------------------------------------------------------------------
Building TVTK classes... vtkContextDevice2D: Ignoring method: Get/SetViewportRect
default: [0, 0, 0, 0], range: None
vtkContextDevice2D: Ignoring method: Get/SetViewportSize
default: [-134528976, 32767], range: None
vtkGeoTreeNode: Ignoring method: Get/SetStatus
default: 0, range: None
vtkIncrementalForceLayout: Ignoring method: Get/SetGravityPoint
default: [200.0, 200.0], range: None
vtkOpenGLBufferObject: Ignoring method: Get/SetType
default: 0, range: None
vtkRenderWidget: Ignoring method: Get/SetPosition
default: [0, 0], range: None
vtkRenderWidget: Ignoring method: Get/SetSize
default: [300, 300], range: None
vtkShader: Ignoring method: Get/SetType
default: 3, range: None
vtkChartMatrix: Ignoring method: Get/SetGutter
default: [15.0, 15.0], range: None
vtkChartMatrix: Ignoring method: Get/SetSize
default: [0, 0], range: None
vtkContextArea: Ignoring method: Get/SetDrawAreaBounds
default: [0.0, 0.0, 300.0, 300.0], range: None
vtkContextArea: Ignoring method: Get/SetFixedRect
default: [0, 0, 300, 300], range: None
vtkContextArea: Ignoring method: Get/SetGeometry
default: [0, 0, 300, 300], range: None
vtkContextArea: Ignoring method: Get/SetDrawAreaResizeBehavior
default: 0, range: None
vtkContextArea: Ignoring method: Get/SetFixedMargins
default: [0, 0, 0, 0], range: None
Traceback (most recent call last):
  File "nix_run_setup.py", line 6, in <module>
    exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec'))
  File "setup.py", line 499, in <module>
  File "/nix/store/2l4p7w0km7c9lz7cxwkxkly6akiwpafs-python3.4-numpy-1.10.4/lib/python3.4/site-packages/numpy/distutils/core.py", line 169, in setup
    return old_setup(**new_attr)
  File "/nix/store/g7fvvd84gkdpxfc1xah4m05nxsf6xbyp-python3-3.4.5/lib/python3.4/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/nix/store/g7fvvd84gkdpxfc1xah4m05nxsf6xbyp-python3-3.4.5/lib/python3.4/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/nix/store/g7fvvd84gkdpxfc1xah4m05nxsf6xbyp-python3-3.4.5/lib/python3.4/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/nix/store/jsn7asadxjb65qh47vnlc5435n9k2w19-python-3.4.5-bootstrapped-pip-8.0.2/lib/python3.4/site-packages/wheel/bdist_wheel.py", line 179, in run
    self.run_command('build')
  File "/nix/store/g7fvvd84gkdpxfc1xah4m05nxsf6xbyp-python3-3.4.5/lib/python3.4/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/nix/store/g7fvvd84gkdpxfc1xah4m05nxsf6xbyp-python3-3.4.5/lib/python3.4/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "setup.py", line 311, in run
  File "setup.py", line 297, in build_tvtk_classes_zip
  File "tvtk/setup.py", line 66, in gen_tvtk_classes_zip
    gen.generate_code()
  File "/tmp/nix-build-python3.4-mayavi-4.5.0.drv-0/mayavi-4.5.0-src/tvtk/code_gen.py", line 123, in generate_code
    self._write_wrapper_class(node, tvtk_name)
  File "/tmp/nix-build-python3.4-mayavi-4.5.0.drv-0/mayavi-4.5.0-src/tvtk/code_gen.py", line 210, in _write_wrapper_class
    self.wrap_gen.generate_code(node, out)
  File "/tmp/nix-build-python3.4-mayavi-4.5.0.drv-0/mayavi-4.5.0-src/tvtk/wrapper_gen.py", line 243, in generate_code
    self._gen_class_init(node, out)
  File "/tmp/nix-build-python3.4-mayavi-4.5.0.drv-0/mayavi-4.5.0-src/tvtk/wrapper_gen.py", line 315, in _gen_class_init
    self.dm.write_class_doc(klass.__doc__, out, indent)
  File "/tmp/nix-build-python3.4-mayavi-4.5.0.drv-0/mayavi-4.5.0-src/tvtk/indenter.py", line 169, in write_class_doc
    out.write(indent.format('\n' + ret))
UnicodeEncodeError: 'ascii' codec can't encode character '\xfc' in position 447: ordinal not in range(128)

Eu acredito que \xfc é au com trema.

Estou tendo um problema semelhante, novamente com o uso de pip install de mayavi 4.5.
Eu construí o VTK 7.1.1 no ubuntu 16.04 com python 3.5.
No pip3 install mayavi, recebo um UnicodeEncodeError .
Parece que algo no escritor está esperando uma codificação diferente de UTF-8, enquanto o codificador python3 padrão é UTF-8. Este pode ser um problema de tradução de py2 para py3.

  Running setup.py install for mayavi ... error
    Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-b59tvpug/mayavi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-s8qedh_6-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    ----------------------------------------------------------------------
    Building TVTK classes... vtkContextDevice2D: Ignoring method: Get/SetViewportSize
    default: [3306096, 32658], range: None
    vtkContextDevice2D: Ignoring method: Get/SetViewportRect
    default: [3301168, 32658, 3305592, 32658], range: None
    vtkFXAAOptions: Ignoring method: Get/SetDebugOptionValue
    default: 0, range: None
    vtkGeoTreeNode: Ignoring method: Get/SetStatus
    default: 0, range: None
    vtkIncrementalForceLayout: Ignoring method: Get/SetGravityPoint
    default: [200.0, 200.0], range: None
    vtkOpenGLBufferObject: Ignoring method: Get/SetType
    default: 0, range: None
    vtkRenderWidget: Ignoring method: Get/SetSize
    default: [300, 300], range: None
    vtkRenderWidget: Ignoring method: Get/SetPosition
    default: [0, 0], range: None
    vtkShader: Ignoring method: Get/SetType
    default: 3, range: None
    vtkChartMatrix: Ignoring method: Get/SetSize
    default: [0, 0], range: None
    vtkChartMatrix: Ignoring method: Get/SetGutter
    default: [15.0, 15.0], range: None
    vtkContextArea: Ignoring method: Get/SetDrawAreaBounds
    default: [0.0, 0.0, 300.0, 300.0], range: None
    vtkContextArea: Ignoring method: Get/SetGeometry
    default: [0, 0, 300, 300], range: None
    vtkContextArea: Ignoring method: Get/SetFixedMargins
    default: [0, 0, 0, 0], range: None
    vtkContextArea: Ignoring method: Get/SetDrawAreaResizeBehavior
    default: 0, range: None
    vtkContextArea: Ignoring method: Get/SetFixedRect
    default: [0, 0, 300, 300], range: None
    vtkOpenGLVertexBufferObject: Ignoring method: Get/SetCoordShiftAndScaleMethod
    default: 1, range: None
    vtkSimple3DCirclesStrategy: Ignoring method: Get/SetMarkedValue
    default: (invalid), range: None
    vtkArrayNorm: Ignoring method: Get/SetWindow
    default: [0, 9223372036854775807), range: None
    vtkChart: Ignoring method: Get/SetSize
    default: [0.0, 0.0, 0.0, 0.0], range: None
    vtkChartXYZ: Ignoring method: Get/SetAxisColor
    default: [0, 0, 0, 255], range: None
    vtkLightingMapPass: Ignoring method: Get/SetRenderType
    default: 0, range: None
    vtkPlot: Ignoring method: Get/SetShiftScale
    default: [0.0, 0.0, 1.0, 1.0], range: None
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-b59tvpug/mayavi/setup.py", line 499, in <module>
        **config
      File "/usr/local/lib/python3.5/dist-packages/numpy/distutils/core.py", line 169, in setup
        return old_setup(**new_attr)
      File "/usr/lib/python3.5/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/lib/python3.5/distutils/dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/usr/local/lib/python3.5/dist-packages/numpy/distutils/command/install.py", line 62, in run
        r = self.setuptools_run()
      File "/usr/local/lib/python3.5/dist-packages/numpy/distutils/command/install.py", line 36, in setuptools_run
        return distutils_install.run(self)
      File "/usr/lib/python3.5/distutils/command/install.py", line 583, in run
        self.run_command('build')
      File "/usr/lib/python3.5/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/tmp/pip-build-b59tvpug/mayavi/setup.py", line 311, in run
        build_tvtk_classes_zip()
      File "/tmp/pip-build-b59tvpug/mayavi/setup.py", line 297, in build_tvtk_classes_zip
        gen_tvtk_classes_zip()
      File "tvtk/setup.py", line 66, in gen_tvtk_classes_zip
        from setuptools import Command
      File "/tmp/pip-build-b59tvpug/mayavi/tvtk/code_gen.py", line 123, in generate_code
        self._write_wrapper_class(node, tvtk_name)
      File "/tmp/pip-build-b59tvpug/mayavi/tvtk/code_gen.py", line 210, in _write_wrapper_class
        self.wrap_gen.generate_code(node, out)
      File "/tmp/pip-build-b59tvpug/mayavi/tvtk/wrapper_gen.py", line 246, in generate_code
        self._gen_methods(node, out)
      File "/tmp/pip-build-b59tvpug/mayavi/tvtk/wrapper_gen.py", line 365, in _gen_methods
        self._gen_other_methods(klass, out)
      File "/tmp/pip-build-b59tvpug/mayavi/tvtk/wrapper_gen.py", line 909, in _gen_other_methods
        self._write_tvtk_method(klass, out, vtk_meth)
      File "/tmp/pip-build-b59tvpug/mayavi/tvtk/wrapper_gen.py", line 1282, in _write_tvtk_method
        self._write_generic_method(out, decl, vtk_meth, body)
      File "/tmp/pip-build-b59tvpug/mayavi/tvtk/wrapper_gen.py", line 1303, in _write_generic_method
        out.write(indent.format('"""\n' + doc + '"""\n'))
    UnicodeEncodeError: 'latin-1' codec can't encode character '\u2013' in position 315: ordinal not in range(256)

estou recebendo este erro também em py36, numpy

UnicodeEncodeError: 'ascii' codec can't encode character '\xfc' in position \
447: ordinal not in range(128)

detalhes do ambiente (debian: stretch)

# packages in environment at /opt/conda/envs/neuro:
#
altair                    1.2.0                    py36_0    conda-forge
appdirs                   1.4.3                     <pip>
apptools                  4.4.0                    py36_0    conda-forge
asn1crypto                0.22.0                   py36_0    conda-forge
blas                      1.1                    openblas    conda-forge
bleach                    1.5.0                    py36_0    conda-forge
boto                      2.48.0                    <pip>
ca-certificates           2017.7.27.1                   0    conda-forge
certifi                   2017.7.27.1              py36_0    conda-forge
cffi                      1.10.0                   py36_0    conda-forge
chardet                   3.0.2                    py36_1    conda-forge
configobj                 5.0.6                    py36_0    defaults
cryptography              1.9                      py36_0    conda-forge
cycler                    0.10.0                   py36_0    conda-forge
datalad                   0.8.1                     <pip>
dbus                      1.10.10                       3    conda-forge
decorator                 4.1.2                    py36_0    conda-forge
entrypoints               0.2.3                    py36_1    conda-forge
expat                     2.2.1                         0    conda-forge
fontconfig                2.12.1                        4    conda-forge
freetype                  2.7                           1    conda-forge
future                    0.16.0                   py36_0    conda-forge
gettext                   0.19.7                        1    conda-forge
gitdb2                    2.0.2                     <pip>
GitPython                 2.1.5                     <pip>
glib                      2.51.4                        0    conda-forge
gmp                       6.1.2                         0    conda-forge
gst-plugins-base          1.8.0                         0    conda-forge
gstreamer                 1.8.0                         2    conda-forge
hdf5                      1.8.18                        0    conda-forge
html5lib                  0.9999999                py36_0    conda-forge
humanize                  0.5.1                     <pip>
icu                       58.1                          1    conda-forge
idna                      2.5                      py36_0    conda-forge
ipykernel                 4.6.1                    py36_0    conda-forge
ipython                   6.1.0                    py36_0    conda-forge
ipython_genutils          0.2.0                    py36_0    conda-forge
ipywidgets                6.0.0                    py36_0    conda-forge
iso8601                   0.1.12                    <pip>
jedi                      0.10.2                   py36_0    conda-forge
jinja2                    2.9.5                    py36_0    conda-forge
jpeg                      9b                            0    conda-forge
jsmin                     2.2.2                     <pip>
jsoncpp                   0.10.6                        1    conda-forge
jsonschema                2.5.1                    py36_0    conda-forge
jupyter                   1.0.0                    py36_0    conda-forge
jupyter_client            5.1.0                    py36_0    conda-forge
jupyter_console           5.1.0                    py36_0    conda-forge
jupyter_core              4.3.0                    py36_0    conda-forge
jupyterlab                0.26.5                   py36_0    conda-forge
jupyterlab_launcher       0.3.1                    py36_0    conda-forge
keyring                   10.4.0                    <pip>
keyrings.alt              2.2                       <pip>
libffi                    3.2.1                         3    conda-forge
libgfortran               3.0.0                         1    defaults
libiconv                  1.14                          4    conda-forge
libpng                    1.6.28                        0    conda-forge
libsodium                 1.0.10                        0    conda-forge
libtiff                   4.0.6                         7    conda-forge
libxcb                    1.12                          1    conda-forge
libxml2                   2.9.4                         4    conda-forge
markupsafe                1.0                      py36_0    conda-forge
matplotlib                2.0.2                    py36_2    conda-forge
mistune                   0.7.4                    py36_0    conda-forge
mock                      2.0.0                     <pip>
msgpack-python            0.4.8                     <pip>
nbconvert                 5.2.1                    py36_1    conda-forge
nbformat                  4.3.0                    py36_0    conda-forge
ncurses                   5.9                          10    conda-forge
nibabel                   2.1.0                     <pip>
nilearn                   0.3.1                     <pip>
notebook                  5.0.0                    py36_0    conda-forge
numpy                     1.13.1          py36_blas_openblas_200  [blas_openblas]  conda-forge
openblas                  0.2.19                        2    conda-forge
openssl                   1.0.2l                        0    conda-forge
pandas                    0.20.3                   py36_1    conda-forge
pandoc                    1.19.2                        0    conda-forge
pandocfilters             1.4.1                    py36_0    conda-forge
patool                    1.12                      <pip>
patsy                     0.4.1                    py36_0    conda-forge
pbr                       3.1.1                     <pip>
pcre                      8.39                          0    conda-forge
pexpect                   4.2.1                    py36_0    conda-forge
pickleshare               0.7.3                    py36_0    conda-forge
pip                       9.0.1                    py36_0    conda-forge
prompt_toolkit            1.0.15                   py36_0    conda-forge
ptyprocess                0.5.2                    py36_0    conda-forge
pycparser                 2.18                     py36_0    conda-forge
pyface                    5.1.0                    py36_0    defaults
PyGithub                  1.35                      <pip>
pygments                  2.2.0                    py36_0    conda-forge
PyJWT                     1.5.2                     <pip>
PyLD                      0.7.2                     <pip>
pyopenssl                 16.2.0                   py36_0    conda-forge
pyparsing                 2.2.0                    py36_0    conda-forge
pyqt                      5.6.0                    py36_4    conda-forge
pysocks                   1.6.7                    py36_0    conda-forge
python                    3.6.2                         0    conda-forge
python-dateutil           2.6.1                    py36_0    conda-forge
pytz                      2017.2                   py36_0    conda-forge
pyyaml                    3.12                     py36_1    conda-forge
pyzmq                     16.0.2                   py36_2    conda-forge
qt                        5.6.2                         3    conda-forge
qtconsole                 4.3.1                    py36_0    conda-forge
readline                  6.2                           0    conda-forge
reprounzip                1.0.9                    py36_0    conda-forge
reprozip                  1.0.9                    py36_0    conda-forge
requests                  2.18.3                   py36_0    conda-forge
rpaths                    0.12                     py36_0    conda-forge
scikit-learn              0.19.0          py36_blas_openblas_201  [blas_openblas]  conda-forge
scipy                     0.19.1          py36_blas_openblas_202  [blas_openblas]  conda-forge
seaborn                   0.8.0                    py36_0    conda-forge
SecretStorage             2.3.1                     <pip>
setuptools                36.2.2                   py36_0    conda-forge
simplegeneric             0.8.1                    py36_0    conda-forge
simplejson                3.11.1                    <pip>
sip                       4.18                     py36_1    conda-forge
six                       1.10.0                   py36_1    conda-forge
smmap2                    2.0.3                     <pip>
sqlite                    3.13.0                        1    conda-forge
statsmodels               0.8.0               np113py36_0    conda-forge
terminado                 0.6                      py36_0    conda-forge
testpath                  0.3                      py36_0    conda-forge
tk                        8.5.19                        2    conda-forge
tornado                   4.5.1                    py36_0    conda-forge
tqdm                      4.15.0                    <pip>
traitlets                 4.3.2                    py36_0    conda-forge
traits                    4.6.0                    py36_1    conda-forge
traitsui                  5.1.0                    py36_0    conda-forge
urllib3                   1.21.1                   py36_1    conda-forge
usagestats                0.5                      py36_0    conda-forge
vega                      0.4.4                    py36_1    conda-forge
vtk                       7.1.1                    py36_0    conda-forge
wcwidth                   0.1.7                    py36_0    conda-forge
webencodings              0.5                      py36_0    conda-forge
wheel                     0.29.0                   py36_0    conda-forge
widgetsnbextension        2.0.0                    py36_0    conda-forge
wrapt                     1.10.11                   <pip>
xorg-libxau               1.0.8                         3    conda-forge
xorg-libxdmcp             1.1.2                         3    conda-forge
xz                        5.2.2                         0    conda-forge
yaml                      0.1.6                         0    conda-forge
zeromq                    4.2.1                         1    conda-forge
zlib                      1.2.11                        0    conda-forge

isso foi resolvido definindo a seguinte variável de ambiente: LC_ALL=C.UTF-8

Eu tive o mesmo problema com Python 3.6.3 no Windows-7 e set LC_ALL=C.UTF-8 na linha de comando não ajudou. Editei manualmente o código-fonte no arquivo tvtk/code_gen.py para substituir todos
open(<filename>, 'w')
para
open(<filename>, 'w', encoding='utf-8')

e fez um pip install <sourcedir> para contornar isso.

Mesmo problema aqui, Win7, Python 3.6 (Anaconda 4.4). Instalei a roda binária do VTK do PyPI .

@subhacom Obrigado pela solução alternativa.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Kekushke picture Kekushke  ·  9Comentários

thoth291 picture thoth291  ·  10Comentários

yassersouri picture yassersouri  ·  5Comentários

Make42 picture Make42  ·  7Comentários

stefanoborini picture stefanoborini  ·  11Comentários