zoukankan      html  css  js  c++  java
  • python 明明安装模块,却导入不了 no module name all


    本人碰到一个实例:
    test_123的脚本如下(通过traceroute来生成路由跟踪图表):

    #!/usr/bin/python
    import os,sys,time,subprocess
    import warnings,logging

    warnings.filterwarnings("ignore",category=DeprecationWarning)
    logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
    from scapy.all import traceroute

    domains = raw_input('Please input on or more IP/domains:')
    target = domain.split(' ')
    dport = [80]
    if len(target) >= 1 and target[0]!='':
    res,unans = traceroute(target,dport=dport,retry=2)
    res.graph(target="> test.svg")
    time.sleep(1)
    subprocess.Popen("/usr/bin/convert test.svg test.png",shell=True)
    else:
    print "IP/domain number of errors,exit"


    但是运行报错:no module name all

    但是直接import scapy是没问题的。因此,判断可能是找不到all.py这个文件

    查一些网上的资料,发现如下这种方法:
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>通过sys.path.append这样来增加
    对于模块和自己写的程序不在同一个目录下,可以把模块的路径通过sys.path.append(路径)添加到程序中。

    对于仍然不能用,解释器报错说找不到你要的模块 
    No Module Named '自己的模块'
    在程序开头加上:

    import sys
    sys.path.append(’引用模块的地址')

    例子如下 : 
    在 /usr/local/sp_system/sp_os中有一个os_sp.py 
    需要使用 os_sp.py 中的 def foo

    则应该 
    import sys
    sys.path.append(’/usr/local/sp_system/sp_os')
    from sp_os import os_sp
    os_sp.foo()

    也可以
    import sys
    sys.path.append(’/usr/local/sp_system/sp_os/os_sp')
    import os_sp
    os_sp.foo()
    特别注意如果 os_sp 模块调用了sp_system的别的包 则要用上一种方式 并注意级层

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>道理相通后,我的直接做法是
    1、[root@redhat174 scapy]# pwd
    /project/scapy/scapy-2.2.0/scapy
    找到scapy模块的python安装包 

    ls 一下发现果然里面有all.py

    2、ls /usr/lib64/python2.6/site-packages 下面没有找到scapy的相关信息

    3、那事情就简单了,cp -rf /project/scapy/scapy-2.2.0/scapy /usr/lib64/python2.6/site-packages 直接复制过去,或者直接软链接过去

    4、结果事情搞定脚本运行成功


  • 相关阅读:
    GoF23种设计模式之己见
    全面阐述某系统设计所实现的质量属性战术
    对XX系统的可用性和易用性改良
    《淘宝网》的质量属性描述
    读《架构漫谈》之后
    软件架构之再理解
    《架构之美》阅读笔记06
    《架构之美》阅读笔记05
    《架构之美》阅读笔记04
    《架构之美》阅读笔记03
  • 原文地址:https://www.cnblogs.com/to-be-rich/p/7261654.html
Copyright © 2011-2022 走看看