这是脚本..
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__'
答案 0 :(得分:0)
这里有很多问题。
您的nmap
包不是扩展名,它是纯Python包;不要为它创建Extension
对象。 Python扩展名用C or C++编写。
您尝试访问nmap.__version__
,大概是因为您在nmap/__init__.py
中定义了该变量,但此处nmap
是您创建的Extension
个对象;它试图从错误的东西中获取变量。
即使您删除了Extension
对象,您仍然无法访问nmap.__version__
,因为您错误地导入了包裹;你打算用import nmap
。
您实际上从未将包裹传递给setup
,因此distutils
将无法了解相关信息。有几个例子说明如何in the documentation。
distutils
documentation非常大,但最好至少阅读一遍所有内容。