-1

这是脚本..

from distutils.core import setup, Extension

nmap = Extension('nmap',sources = ['nmap/nmap.py', 
                           'nmap/__init__.py', 'nmap/example.py'])

from nmap import *

setup (
    name = 'python-nmap',
    version = nmap.__version__,
    author = 'Alexandre Norman',
    author_email = 'norman@xael.org',
    license ='gpl-3.0.txt',
    keywords="nmap, portscanner, network, sysadmin",)

...我收到了这个错误:

Traceback (most recent call last):
  File "C:\Python27\nmap.py", line 6, in <module>
    from nmap import *
  File "C:\Python27\nmap.py", line 17, in <module>
    version = nmap.__version__,
AttributeError: Extension instance has no attribute '__version__'
4

1 回答 1

0

这里有很多问题。

  1. 你的nmap包不是一个扩展,它是一个纯 Python 包;不要Extension为它创建对象。Python 扩展是用C 或 C++编写的。

  2. 您正在尝试访问nmap.__version__,大概是因为您在 中定义了该变量nmap/__init__.py,但这nmapExtension您创建的对象;它试图从错误的东西中访问变量。

  3. 即使您删除了该Extension对象,您仍然无法访问nmap.__version__,因为您错误地导入了您的包;你打算使用import nmap.

  4. 你从来没有真正将你的包裹传递给setup,所以distutils不会知道它。文档中有一些如何做到这一点的示例。

distutils文档很大,但最好至少通读一遍。

于 2013-04-30T20:05:01.890 回答