Python distutils setup.py安装-';模块';对象不可调用

Python distutils setup.py安装-';模块';对象不可调用,python,distutils,setup.py,Python,Distutils,Setup.py,我正在尝试使用特定的python/numpy库,但无法安装它。以下是我按照说明运行setup.py install时的跟踪: $ python setup.py install running install running build running build_ext Traceback (most recent call last): File "setup.py", line 26, in <module> ext_modules = [ext] File "

我正在尝试使用特定的python/numpy库,但无法安装它。以下是我按照说明运行
setup.py install
时的跟踪:

$ python setup.py install
running install
running build
running build_ext
Traceback (most recent call last):
  File "setup.py", line 26, in <module>
    ext_modules = [ext]
  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 "/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 "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/build.py", line 127, in run
    self.run_command(cmd_name)
  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 970, in run_command
    cmd_obj = self.get_command_obj(command)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 846, in get_command_obj
    cmd_obj = self.command_obj[command] = klass(self)
TypeError: 'module' object is not callable
$python setup.py安装
正在运行的安装
运行构建
运行build_ext
回溯(最近一次呼叫最后一次):
文件“setup.py”,第26行,在
ext_模块=[ext]
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py”,第152行,在安装程序中
dist.run_命令()
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py”,第953行,在run_命令中
self.run_命令(cmd)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py”,第972行,在run_命令中
cmd_obj.run()
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/install.py”,第573行,正在运行
self.run_命令('build'))
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py”,第326行,在run_命令中
self.distribution.run_命令(command)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py”,第972行,在run_命令中
cmd_obj.run()
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/build.py”,第127行,处于运行状态
self.run_命令(cmd_名称)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py”,第326行,在run_命令中
self.distribution.run_命令(command)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py”,第970行,在run_命令中
cmd_obj=self.get_命令_obj(命令)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py”,第846行,在get_命令_obj中
cmd_obj=self.command_obj[command]=klass(self)
TypeError:“模块”对象不可调用


问题可能是什么?

您正在导入build\u ext模块,但没有指定该模块中的可调用内容。您真正想要做的是将try块中的内容更改为:

try:
    from Cython.Distutils.build_ext import build_ext
    src = ['sselogsumexp.pyx', 'src/logsumexp.c']
except ImportError:
    from distutils.command.build_ext import build_ext
    src = ['sselogsumexp.c', 'src/logsumexp.c']

我用distutils.command.build\u ext模块测试了这一点。如果您查看该模块,您会注意到有一个名为build_ext的类,因此为了调用“callable”,您需要按照我的示例中的指定导入。我用代码更改运行了setup.py,它成功了。

您在名称空间上得到了
重复。创建名称空间时要小心。可能您使用的是不兼容的模块。确保支持哪个模块哪个库。类名可能因版本而异。很可能您的库版本不足。我向作者发送了一个请求以修复此问题。只是为了让您知道拉取请求已被接受,这样您就可以更新您的回购协议,并且应该有最新的更改