NameError:未定义名称'argparse'

问题描述 投票:0回答:1

我正在使用python 3.7.4,这是我的代码,但是它不起作用。这是由python编写的ssrf扫描器,我刚刚开始学习'argparse',所以不知道代码中有什么问题:

import sys
import argparse

error = "Please enter a valid command. If you don't know how to use, enter '--help'"
parser = argparse.ArgumentParser(version='1.0')
parser.add_argument('-u', help='URL', dest='url')
parser.add_argument('--get', help='Method GET', dest='get')
parser.add_argument('--post', help='Method POST', dest='post')
parser.add_argument('-i', help='Ip', dest='ip')
parser.add_argument('-p', help='Port', dest='port')
parser.add_argument('-d', help='Post data', dest='param')
parser.add_argument('--encode', help='Encode payloads', dest='encode')
parser.add_argument('--proxy', help='Use proxy(y|ies)',
                    dest='proxy', action='store_true')
parser.add_argument('-f', help='Load payloads from a file', dest='file')
parser.add_argument('-h', help='Add headers',
                    dest='header', const=True)
parser.add_argument('--white', help='Whitelist', dest='wlist')
parser.add_argument('--black', help='Blacklist', dest='blist')

url = args.url
get = args.get
post = args.post
ip = args.ip
port = args.port
param = args.param
encode = args.encode
proxy = args.proxy
file = args.file
header = args.header
wlist = args.wlist
blist = args.blist

if not url:
    print(error)
    quit()

if not "http://" in url or "https://" in url:
    print("Please enter full URL(Include 'https://' or 'http://)")
    quit()

if not get and post:
    print(error)
    quit()

if post:
    if not param:
        print(error)
        quit()

from mode import scan        
from mode import test

即使我已经导入了'argparse',仍然出现错误:

Traceback (most recent call last):
  File "E:\SSdom\ssrf.py", line 7, in <module>
    parser = argparse.ArgumentParser(version='1.0')
NameError: name 'argparse' is not defined

有人可以帮我吗! (抱歉,这是一个愚蠢的问题)

argparse
1个回答
0
投票

我有一个类似的问题,它有助于直接使用from argparse import ArgumentParser,然后将ArgumentParser()用作导入函数。希望对您有用。

© www.soinside.com 2019 - 2024. All rights reserved.