Python - pip install pyublas : Could Not Build The

2019-08-26 10:50发布

问题:

I'm having trouble installing PyUblas on Ubuntu 14.04, via pip. I am using Python 2.7.6.

Here goes the log :

Traceback (most recent call last):
  File "setup.py", line 248, in <module>
    scripts = scripts,
  File "/usr/lib/python2.7/distutils/core.py", line 111, in setup
    _setup_distribution = dist = klass(attrs)
  File "/tmp/tmpJjyKIr/distribute-0.6.35/setuptools/dist.py", line 225, in __init__
    _Distribution.__init__(self,attrs)
  File "/usr/lib/python2.7/distutils/dist.py", line 287, in __init__
    self.finalize_options()
  File "/tmp/tmpJjyKIr/distribute-0.6.35/setuptools/dist.py", line 257, in finalize_options
    ep.require(installer=self.fetch_build_egg)
  File "/tmp/tmpJjyKIr/distribute-0.6.35/pkg_resources.py", line 2027, in require
    working_set.resolve(self.dist.requires(self.extras),env,installer))
  File "/tmp/tmpJjyKIr/distribute-0.6.35/pkg_resources.py", line 2237, in requires
    dm = self._dep_map
  File "/tmp/tmpJjyKIr/distribute-0.6.35/pkg_resources.py", line 2466, in _dep_map
    self.__dep_map = self._compute_dependencies()
  File "/tmp/tmpJjyKIr/distribute-0.6.35/pkg_resources.py", line 2499, in _compute_dependencies
    common = frozenset(reqs_for_extra(None))
  File "/tmp/tmpJjyKIr/distribute-0.6.35/pkg_resources.py", line 2496, in reqs_for_extra
    if req.marker_fn(override={'extra':extra}):
  File "/tmp/tmpJjyKIr/distribute-0.6.35/_markerlib/markers.py", line 109, in marker_fn
    return eval(compiled_marker, environment)
  File "<environment marker>", line 1, in <module>
NameError: name 'sys_platform' is not defined
/tmp/pip_build_alain/pyublas/distribute-0.6.35-py2.7.egg
Traceback (most recent call last):
  File "<string>", line 17, in <module>
  File "/tmp/pip_build_alain/pyublas/setup.py", line 143, in <module>
    main()
  File "/tmp/pip_build_alain/pyublas/setup.py", line 29, in main
    from aksetup_helper import hack_distutils, get_config, setup, \
  File "aksetup_helper.py", line 3, in <module>
    distribute_setup.use_setuptools()
  File "distribute_setup.py", line 152, in use_setuptools
    return _do_download(version, download_base, to_dir, download_delay)
  File "distribute_setup.py", line 132, in _do_download
    _build_egg(egg, tarball, to_dir)
  File "distribute_setup.py", line 123, in _build_egg
    raise IOError('Could not build the egg.')
IOError: Could not build the egg.

Does anyone has an idea of what the problem could be here ? Thanks in advance.

回答1:

I've run into this problem intermittently. Here's a (totally hacky) fix that's worked for me. First, download the PyUblas source:

pip install pyublas -d .
tar xvfz PyUblas-2013.1.tar.gz
cd PyUblas-2013.1/

Then edit aksetup_helper.py and comment out the lines that cause it to use its own custom version of distribute:

# dealings with ez_setup ------------------------------------------------------
# COMMENT OUT THE NEXT TWO LINES
# import distribute_setup
# distribute_setup.use_setuptools()

import setuptools
from setuptools import Extension

Then finally just do a manual install:

python setup.py install

Your mileage may vary. :-)

Edit: instead of manually editing the file, you can also just wipe out the distribute_setup module that it tries to import: echo "def use_setuptools(): pass" > distribute_setup.py. This might be easier if you're trying to script the process.



标签: python pip egg