module_modulenotfounderror - CSDN
精华内容
参与话题
  • module是干什么的?

    千次阅读 2012-11-07 09:22:16
    以前一直搞不太清楚module是干什么的? 我们公司到底干什么的? 前几天听同事说,IC公司只是一个CPU+MAC层程序控制GPIO口,需要添加射频部分,也就是信号的发送与接收那些硬件的东西,就是电源+天线。 这就是...
    以前一直搞不太清楚module是干什么的? 我们公司到底干什么的?
    前几天听同事说,IC公司只是一个CPU+MAC层程序控制GPIO口,需要添加射频部分,也就是信号的发送与接收那些硬件的东西,就是电源+天线。
    这就是module厂商的工作。
    不过,IC厂商慢慢把这些都做了,所以module厂商没落了。
    添加射频部分,需要各种电容电感的配合,最后才能决定信号最好的,这个是个很复杂的东西,需要的设备也很昂贵,反复的测试,真的是经验为大!
    2012.11.07
    展开全文
  • Python——模块(Module)和包(Package)

    万次阅读 多人点赞 2018-02-01 16:01:16
    1. 模块(Module) 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含...

    本文绝大部分内容转载至:廖雪峰官方网站

    1. 模块(Module)

    在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。

    为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)

    使用模块有什么好处?

    最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块

    使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突

    你也许还想到,如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)

    举个例子,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块。

    现在,假设我们的abcxyz这两个模块名字与其他模块冲突了,于是我们可以通过包来组织模块,避免冲突。方法是选择一个顶层包名,比如mycompany,按照如下目录存放:

    mycompany
    ├─ __init__.py
    ├─ abc.py
    └─ xyz.py

    引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。现在,abc.py模块的名字就变成了mycompany.abc,类似的,xyz.py的模块名变成了mycompany.xyz

    请注意,每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是mycompany。

    类似的,可以有多级目录,组成多级层次的包结构。比如如下的目录结构:

    mycompany
     ├─ web
     │  ├─ __init__.py
     │  ├─ utils.py
     │  └─ www.py
     ├─ __init__.py
     ├─ abc.py
     └─ xyz.py

    文件www.py的模块名就是mycompany.web.www

    Notes: 自己创建模块时要注意命名,不能和Python自带的模块名称冲突。例如,系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块。

    2. 使用模块

    Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。

    我们以内建的sys模块为例,编写一个hello的模块:

    #!/usr/bin/env python3 
    # -*- coding: utf-8 -*-
    
    ' a test module '
    
    __author__ = 'Michael Liao'
    
    import sys
    
    def test():
        args = sys.argv   # argv参数用列表存储命令行的所有参数
        if len(args)==1:  # 当列表长度为1时即只有一个参数时
            print('Hello, world!')
        elif len(args)==2: # 当命令行有两个参数时
            print('Hello, %s!' % args[1])
        else:
            print('Too many arguments!')
    
    if __name__=='__main__':
        test()

    第1行和第2行是标准注释,第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第2行注释表示.py文件本身使用标准UTF-8编码;

    第4行是一个字符串,表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释;

    第6行使用__author__变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名;

    以上就是Python模块的标准文件模板,当然也可以全部删掉不写,但是,按标准办事肯定没错。

    后面开始就是真正的代码部分。

    你可能注意到了,使用sys模块的第一步,就是导入该模块:

    import sys

    导入sys模块后,我们就有了变量sys指向该模块,利用sys这个变量,就可以访问sys模块的所有功能。

    sys模块有一个argv变量,list存储了命令行的所有参数argv至少有一个元素,因为第一个参数永远是该.py文件的名称,例如:

    运行python3 hello.py获得的sys.argv就是['hello.py'],注意这里python3不算是参数;

    运行python3 hello.py Michael获得的sys.argv就是['hello.py', 'Michael]

    最后,注意到这两行代码:

    if __name__=='__main__':
        test()

    当我们在命令行运行hello模块文件时,Python解释器把一个特殊变量__name__置为__main__,而如果在其他地方导入该hello模块时,if判断将失败,因此,这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试

    我们可以用命令行运行hello.py看看效果:

    $ python3 hello.py
    Hello, world!
    $ python hello.py Michael
    Hello, Michael!

    如果启动Python交互环境,再导入hello模块:

    >>> import hello
    >>>

    导入时,没有打印Hello, word!,因为没有执行test()函数。

    调用hello.test()时,才能打印出Hello, word!

    >>> hello.test()
    Hello, world!
    展开全文
  • JS设计模式(一)-MODULE(模块模式)

    千次阅读 2018-07-23 10:24:46
    在JavaScript中Module模式模拟了类的概念,用闭包封装了"私有"状态和方法。 Module(模块)模式 通常能够帮助我们清晰地分离和组织项目中的代码单元 js中实现模块的方法 1》对象字面量表示法 2》...

    JavaScript模块是用于保持代码块之间相互独立而普遍使用的设计模式。对于熟悉面向对象语言的人来说,模块是JavaScript的"类"。在JavaScript中Module模式模拟了类的概念,用闭包封装了"私有"状态和方法。

    Module(模块)模式

    通常能够帮助我们清晰地分离和组织项目中的代码单元

    js中实现模块的方法

    1》对象字面量表示法

    2》Module模式

    3》AMD模式

    4》CommonJS模块

    5》ECMAScript Harmony模块

    Module模式某种程度上是基于对象的字面量

    9.2.1对象字面量

    在对象字面量表示法中,一个对象被描述为一组包含在大括号{}中、以逗号分隔的name/value对。对象内的名称可以是字符串或标识符,后面跟着一个冒号。对象中最后的一个name/value对的后面不用加逗号,如果加逗号将会导致出错。

    Var myObjectLiteral={

    variableKey:variableValue;

    functionKey:function(){

    //

    }

    };

    对象字面量不需要使用new运算符进行实例化,但不能用在一个语句的开头,因为开始的可能被解读为一个块的开始。在对象的外部,新成员可以使用如下赋值语句添加在字面量上,如:

    myModule.property="some Value";

    使用对象字面量有助于封装和组织代码,Module模式仍然使用对象字面量,但只是作为一个作用域函数的返回值。

    复制代码

       var myModule={
            myProperty:"somevalue",
            //对象字面量可以包含属性和方法
            //例如,可以声明模块的配置对象
            myConfig:{
                useCaching:true,
                language:"en"
            },
            //基本方法
            myMethod:function(){
                console.log("myMethod");
            },
            //根据当前配置输出信息
            myMethod2:function(){
                console.log("caching is:" + (this.myConfig.useCaching) ? "enabled":"disabled");
            },
            //重写当前配置
            myMethod3:function(newConfig){
                if(typeof newConfig==="object"){
                    this.myConfig=newConfig;
                    console.log(this.myConfig.language);
                }
            }
        };
        myModule.myMethod();
        myModule.myMethod2();//打印出来的是enabled,没有加上前面的字符串
        myModule.myMethod3({
            language:"fr",
            useCaching:false
        });

    复制代码

    9.2.2Module(模块)模式

    Module模式最初被定义为一种在传统软件工程中为类提供私有和公有封装的方法。

    在js中,Module模式用于进一步模拟类的概念,通过这种方式,能够使一个单独的对象用于公有/私有方法和变量,从而屏蔽来自全局作用域的特殊部分。产生的结果是:函数名与在页面上其他脚本定义的函数冲突的可能性降低。

    模块模式的模板

    复制代码

    var myNamespace=(function(){
        //私有计数器变量
        var myPrivateVar=0;
        //记录所有参数的私有函数
        var myPrivateMethod=function(foo){
            console.log(foo);
        }
        return{
            //公有变量
            myPublicVar:"foo",
            //调用私有变量和方法的公有函数
            myPublicFunction:function(bar){
                //增加私有计数器值
                myPrivateVar++;
                //传入bar调用私有方法
                myPrivateMethod(bar);
            }
        };
    })();

    复制代码

    9.2.2.1 私有

    Module模式使用闭包封装“私有”状态和组织。它提供了一种包装混合公有/私有方法和变量的方式,防止其泄露至全局作用域,并与别的开发人员的接口发生冲突。通过该模式,只需返回一个公有API,而其他的一切则都维持在私有闭包里 。

    这为我们提供了一个屏蔽处理底层时间逻辑的整洁解决方案,同时只暴露一个接口供应用程序的其他部分使用。该模式除了返回一个对象而并不是函数之外,非常类似于一个立即调用的函数表达式。

    应该指出的是,在js中没有正真意义上的“私有”,因为js没有访问修饰符,因此我们使用函数作用域来模拟这个概念。在Module模式内:闭包声明的变量和方法只在该模式内部可用。但在返回对象上定义的变量和方法,则对外部使用者都是可用的。

    复制代码

        var basketModule=(function(){
            //私有
            var basket=[];
            function doSomethingPrivate(){
                console.log("private");
            }
            function doSomethingElsePrivate(){
                //
            }
            //返回一个暴露出的公有对象
            return{
                //添加item到购物车
                addItem:function(values){
                    basket.push(values);
                },
                //获取购物车里的item数
                getItemCount:function(){
                    return basket.length;
                },
                //私有函数的公有形式别名,
                // doSomething:doSomethingPrivate自动调用doSomethingPrivate函数
                doSomething:doSomethingPrivate,
                //获取购物车里所有item的价格总值
                getTotal:function(){
                    var itemCount=this.getItemCount(),total=0;
                    while(itemCount--){
                        total+=basket[itemCount].price;
                    }
                    return total;
                }
            };
        })();
    
        //basketModule返回了一个拥有公用API的对象
        basketModule.addItem({
            item:"bread",
            price: 0.5
        });
        basketModule.addItem({
            item:"butter",
            price:0.3
        });
        console.log(basketModule.getItemCount());
        console.log(basketModule.getTotal());
        //会打印一个private和一个undefined,原因不明
        console.log(basketModule.doSomething());
        console.log(basketModule.basket);

    复制代码

     

    basket模块的优点:

     

    1》只有模块自身才能享有拥有私有函数的自由,因为它只会暴露我们输出的API。

     

    2》鉴于函数往往已声明并命名,在试图找到哪些函数抛出异常时,这将使得在调试器中显示调用堆栈变得更容易。(没感觉)

     

    3》根据环境,还可以让我们返回不同 的函数

     

    9.2.2.3 示例

    复制代码

        /**
         * counter的存在被局限在模块的闭包内,唯一能访问其作用域的代码是return中的2个函数
         */
        var testModule=(function(){
            var counter=0;
            return{
                incrementCounter:function(){
                    return ++counter;
                },
                resetCounter:function(){
                    console.log("counter value prior to reset "+counter);
                    counter=0;
                }
            };
        })();
        //增加计数器
        testModule.incrementCounter();
        //检查并重置计数器
        testModule.resetCounter();

    复制代码

     

    复制代码

    //引入混入
        var myModule=(function(jQ,_){
            function privateMethod1(){
                jQ(".container").html("test");
            }
            return{
                publicMethod:function(){
                    privateMethod1();
                }
            };
        //引入JQuery和Underscore
        })(jQuery,_);

    复制代码

     

    我们用立即执行函数(Immediately-Invoked-Function-Expressions (IIFE)) 创建私有空间,防止其泄露全局作用域。其样子如下:

    var myGirlfriend = (function() {
    
      // 定义私有变量或方法
      var name = '小郑';
    
      var _kiss = function() {
        console.log('吻');
      }
    
      var _smile = function() {
        console.log('微笑');
      }
    
      return {
        // 暴露给公有的变量或方法
        simle: _smile,
        name: name
      }
    
    })();
    
    console.log(myGirlfriend.name); 
    myGirlfriend.simle();
    
    console.log(myGirlfriend._simle);
    console.log(myGirlfriend._kiss);
    
    /**
     * 结果:
     *     小美
     *     微笑
     *     undefined
     *     undefined
    */
    

    在Module模式内,由于闭包的存在,声明的变量和方法只在模式内部可用,但在返回的对象上定义的变量和方法,在对外部也可用。如上面例子:其他人可以知道我的女朋友的名字,也可以看到我女朋友微笑,但不可以吻我女朋友。

    Module模式的优缺点:

    优点:

    • 实现代码的封装模块化
    • 实现私有化变量和方法

    缺点:

    • 无法应用私有变量,造成无法对私有变量进行单元测试
    • 当我们想改可见性时,实际上要修改每一个曾经使用过该成员的地方。

    这里只举例了一种简单Module的设计模式,从Module模式上还衍生出Revealing Module(揭示模块)模式、Singleton(单例)模式。这些模式都很有使用价值,不同当我们的系统中出现了它们,则表示我们能需要评估我们的设计,例如Singleton的存在往往表明系统中的模块要么是系统紧密耦合,要么是其逻辑过于分散在代码库的多个部分中。



    作者:内孤
    链接:https://www.jianshu.com/p/03c5b939e5d4
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    展开全文
  • IntelliJ IDEA 中 Project 和 Module 的概念及区别

    万次阅读 多人点赞 2019-07-22 18:58:28
    在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间(Workspace)的概念,而是提出了Project和Module这两个概念。接下来,就让咱们一起看看 IntelliJ IDEA 官方是如何描述两者的吧!对于 Project,IntelliJ IDEA 是...

    在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间(Workspace)的概念,而是提出了ProjectModule这两个概念。接下来,就让我们一起看看 IntelliJ IDEA 官方是如何描述两者的吧!对于 Project,IntelliJ IDEA 官方是这样介绍的

    A project is a top-level organizational unit for your development work in IntelliJ IDEA. In its finished form, a project may represent a complete software solution. A project is a collection of:

    • Your work results: source code, build scripts, configuration files, documentation, artifacts, etc.
    • SDKs and libraries that you use to develop, compile, run and test your code.
    • Project settings that represent your working preferences in the context of a project.

    A project has one or more modules as its parts.

    对于 Module,IntelliJ IDEA 官方是这样介绍的

    • A module is a part of a project that you can compile, run, test and debug independently.
    • Modules are a way to reduce complexity of large projects while maintaining a common (project) configuration.
    • Modules are reusable: if necessary, a module can be included in more than one project.

    通过上面的介绍,我们知道:在 IntelliJ IDEA 中Project是最顶级的结构单元,然后就是Module,一个Project可以有多个Module。目前,主流的大型项目结构基本都是多Module的结构,这类项目一般是按功能划分的,比如:user-core-moduleuser-facade-moduleuser-hessian-module等等,模块之间彼此可以相互依赖。通过这些Module的命名可以看出,它们都是处于同一个项目中的模块,彼此之间是有着不可分割的业务关系。因此,我们可以大致总结出:一个Project是由一个或多个Module组成,

    • 当为单Module项目的时候,这个单独的Module实际上就是一个Project
    • 当为多Module项目的时候,多个模块处于同一个Project之中,此时彼此之间具有互相依赖的关联关系。

    此外, IntelliJ IDEA 的Project是一个不具备任何编码设置、构建等开发功能的概念,其主要作用就是起到一个项目定义、范围约束、规范类型的效果,或许,我们也可以简单地理解Project就是一个单纯的目录,只是这个目录在命名上必须有其代表性的意义。在缺省情况下,IntelliJ IDEA 是默认单ProjectModule的,这时ProjectModule合二为一,在没有修改存储路径的时候,显然ProjectModule具有强约束作用!不过说实话,这里就是将Module的内容放在了Project的目录下,实际上还是Module自己约束自己。

    000

    • 标注 1Project name,项目名称;
    • 标注 2Project location,项目存储地址;
    • 标注 3Module name,模块名称;
    • 标注 4Module file location,模块存储地址。

    如上图所示,通过观察ProjectModule的存储地址,我们可以发现,IntelliJ IDEA 在此处建立了一个名为user-core-module的目录,并将其放在了名为user-modules-project的目录下,而没有将两个目录合二为一,也就为我们建立多ModuleProject作了准备。

    111

    如上图所示,显然user-modules-project仅表现为一个目录而已。

    112

    如上图所示,依次点击File -> New -> Module,进入如下界面:

    113

    如上图所示,输入Module name之后,Content rootModule file location自动发生改变,然后点击Finish,完成:

    114

    如上图所示,我们在项目user-modules-project中,建立了两个Module,分别为user-core-moduleuser-hessian-module,然后我们再来看看存储目录:

    115

    如上图所示,显然在user-modules-project目录中,又多了一个名为user-hessian-module的目录。

    至此,多ModuleProject构建完成!


    ———— ☆☆☆ —— 返回 -> 史上最简单的 IntelliJ IDEA 教程 <- 目录 —— ☆☆☆ ————

    展开全文
  • 什么是module 以及如何写一个module

    千次阅读 2006-01-16 13:09:00
  • module&sass

    2020-08-03 23:44:27
    1.模块化概念 模块化是一个语言膨胀的必经之路,它能够帮助开发者拆分和组织代码 无模块化 JavaScript初衷:实现简单的页面交互逻辑,寥寥数语即可。随着web2.0时代的到来,Ajax技术得到广泛应用,jQuery等前端库...
  • 过假期想着在家跑下项目,写下代码,结果把代码拉下来之后,就死活跑不起来了,以为是自己电脑node版本的原因,结果卸载了node安装了最新版本的,结果npm run dev还是报错了‘’Cannot find module ‘node-sass’,...
  • Module build failed: Error: Cannot find module 'node-sass' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15) at Function.Module._load (internal/modules/cjs/l...
  • Sass Module 介绍

    2020-03-12 19:26:19
    作者简介: 李中凯老师,8年前端开发,前端负责人,擅长JavaScript/Vue。 公众号:1024译站 ...主要分享:Vue.js, JavaScript,CSS ...Sass刚刚发布了一个你可能从其他语言中认识的主要新功能:模块系统。...
  • 问题一:ERROR in Cannot find module 'node-sass' 错误表示找不到node-sass模块。 网上查了下我是因为cnpm安装导致的,换成npm安装就好 或者cnpm install node-sass 或者node-sass需要编译环境,我的配置是...
  • 前言:pytorch中对于一般的序列模型,直接使用torch.nn.Sequential类及可以实现,这点类似于keras,但是更多的时候面对复杂的模型,比如:多输入多输出、多分支...一、torch.nn.Module类概述 个人理解,pytorch不...
  • 在PyCharm中运行代码报错: import torch ModuleNotFoundError: No module named ‘torch’
  • vb的module 和class module 有什么区别?

    万次阅读 2007-07-03 13:46:00
    标准模块与类模块的比较 在数据存储方式上,类不同于标准模块。标准模块的数据不可能多于一份。这意味着若程序中某个部分改动了标准模块的公共变量,随后程序的其它部分读取该变量会得到该值。 相反,类模块数据则...
  • Node.js Cannot find module 'xxx' 问题解决

    万次阅读 2014-02-24 12:12:39
    使用npm install -g 'xxx' 之后仍然报  Cannot find module 'xxx' 错误,可以通过设置环境变量来解决;  export NODE_PATH=/usr/local/lib/node_modules/ echo $NODE_PATH
  • 史上最全的 Stata 外部命令一览

    万次阅读 2019-07-17 23:30:10
    Stata 连享会2018.11现场班:内生性专题课程介绍 史上最全的 Stata 外部命令一览,可以在线查看帮助文件。 Stata连享会 精彩推文1 || 精彩推文2 ...Source: Archive of user-written Stata packages ...
  • 【解决】Cannot find module 'webpack'

    万次阅读 2016-10-10 10:36:50
    问题描述问题描述配置webpack管理React,执行npm start报错 Error: Cannot find module ... at Function.Module._resolveFilename (module.js:326:15) at Function.Module._load (module.js:277:25) at Modu
  • 在腾讯云上玩Django,但总是遇到no module name “django.core.wsgi”,等问题。在django的 error.log中也提示是 no module…..,但是 本地 python3 wsgi.py或者 python3 manage.py runserver 都没有问题,加了print...
  • Failed to load module &amp;amp;quot;canberra-gtk-module&amp;amp;quot; 2.解决方案 (1)执行语句: sudo apt-get install libcanberra-gtk-module 输入后自动执行安装,安装过程中,需要输入”Y”...
  • 出现cannot find module 'xxx',说明你缺xxx模块,你需要做的就是输入命令npm install xxx.之后将会自动下载安装,如果提示不成功,再来一遍
  • 运行python脚本时出现no module named cv2怎么解决

    万次阅读 多人点赞 2018-08-04 23:34:20
    运行python脚本时报错: ...ImportError: No module named cv2   第一想法: 使用命令: pip install cv2 会报错找不到请求的版本   解决方法: 使用命令 pip install opencv-python...
1 2 3 4 5 ... 20
收藏数 972,632
精华内容 389,052
关键字:

module