精华内容
下载资源
问答
  • pip升级后Import Error:cannot import name main解决方案

    万次阅读 多人点赞 2018-05-22 19:29:05
    在Ubuntu上安装软件,不小心升级了pip,导致使用时报错如下 后来发现是因为将pip更新为10.0.0后库里面的函数有所变动...from pip import main 改为 from pip._internal import main 方法二: sudo gedit ...

    在Ubuntu上安装软件,不小心升级了pip,导致使用时报错如下

    后来发现是因为将pip更新为10.0.0后库里面的函数有所变动造成这个问题。 解决方法如下:

    方法一:

    sudo vim /usr/bin/pip

    注意,如果自己是要用pip3,则修改对应的/usr/bin/pip3,将原来的

    from pip import main

    改为

    from pip._internal import main

     方法二:

    sudo vim /usr/bin/pip

    将原来的:

    from pip import main
    if __name__ == '__main__':
        sys.exit(main())

    改为:

    from pip import __main__
    if __name__ == '__main__':
        sys.exit(__main__._main())

    就可以了,注意__main__左右的下划线是两个下划线,很多同学不成功的原因是因为只写了一个下划线

    展开全文
  • 前言在这篇文章中,我将会解析 ImportError: attempted relative import with no known parent package 这个异常的原因。当你在运行的python脚本。使用了相对引用方式 (类似import ..module) 去引用包时,可能会出现...

    前言

    在这篇文章中,我将会解析 ImportError: attempted relative import with no known parent package 这个异常的原因。当你在运行的python脚本。使用了相对引用方式 (类似import ..module) 去引用包时,可能会出现这个异常。

    让我们来看看发生这个异常的例子。

    问题

    假设你有以下目录结构:

    project
    ├── config.py
    └── package
        ├── __init__.py
        └── demo.py
    

    config.py 中包含一些应该在 demo.py 中使用的变量

    • project/config.py
    count = 5
    
    • project/package/demo.py
    from .. import config
    print("The value of config.count is {0}".format(config.count))
    

    当我们尝试运行demo.py时,会遇到以下错误:

    E:\project> python demos/demo.py
    Traceback (most recent call last):
      File "demos/demo.py", line 1, in <module>
        from .. import config
    ImportError: attempted relative import with no known parent package
    

    python解释器抛出了没有父级包的异常。为什么?

    让我们看看python解释器是如何解析相关模块。从 PEP 328 中,我们找到了关于 the relative imports(相对引用)的介绍:

    Relative imports use a module’s __name__ attribute to determine that module’s position in the package hierarchy. If the module’s name does not contain any package information (e.g. it is set to __main__ ) then relative imports are resolved as if the module were a top level module, regardless of where the module is actually located on the file system.

    相对导入通过使用模块的 __name__ 属性来确定模块在包层次结构中的位置。如果该模块的名称不包含任何包信息(例如,它被设置为 __main__ ),那么相对引用会认为这个模块就是顶级模块,而不管模块在文件系统上的实际位置。

    换句话说,解决模块的算法是基于__name____package__变量的值。大部分时候,这些变量不包含任何包信息 ---- 比如:当 __name__ = __main____package__ = None 时,python解释器不知道模块所属的包。在这种情况下,相对引用会认为这个模块就是顶级模块,而不管模块在文件系统上的实际位置。

    为了演示这个原理,我们来更新一下代码:

    • project/config.py
    print('__file__={0:<35} | __name__={1:<20} | __package__={2:<20}'.format(__file__,__name__,str(__package__)))
    count = 5
    
    • project/package/demo.py
    print('__file__={0:<35} | __name__={1:<20} | __package__={2:<20}'.format(__file__,__name__,str(__package__)))
    from .. import config
    print("The value of config.count is {0}".format(config.count))
    

    再次尝试运行一下,会得到以下输出:

    E:\project> python demos/demo.py
    __file__=demos/demo.py      | __name__=__main__    | __package__=None
    Traceback (most recent call last):
      File "demos/demo.py", line 3, in <module>
        from .. import config
    ImportError: attempted relative import with no known parent package
    

    正如我们所看到的,python解释器没有关于模块所属的包的任何信息( __name__ = __main____package__ = None ),因此它抛出了找不到父级包的异常。

    解决方案一

    • 我们通过在其中创建一个新的空 __init__.py 文件来将项目目录转换为一个包。

    • 我们在项目目录的父目录中创建一个文件 main.py

    toplevel
    ├── main.py
    └── project
      ├── __init__.py
      ├── config.py
      └── demos
          ├── __init__.py
          └── demo.py
    
    • toplevel/main.py
    print('__file__={0:<35} | __name__={1:<20} | __package__={2:<20}'.format(__file__,__name__,str(__package__)))
    import project.demos.demo
    

    执行一下新的示例,输出如下:

    E:\toplevel>python main.py
    __file__=main.py                             | __name__=__main__             | __package__=None
    __file__=E:\toplevel\project\demos\demo.py   | __name__=project.demos.demo   | __package__=project.demos
    __file__=E:\toplevel\project\config.py       | __name__=project.config       | __package__=project
    The value of config.count is 5
    

    main.py 中导入 project.demos.demo 会设置相对引用的包信息( __name____package__ 变量)。现在,python解释器可以成功解析 project\demos\demo.py 中的相对引用了。

    解决方案二

    • 我们通过在 project 文件夹中创建一个新的空 __init__.py 来将 project 目录转换为一个包。

    • toplevel 目录下通过 -m 参数来调用python解释器,去执行 project.demos.demo[1]

    toplevel
    └── project
      ├── __init__.py
      ├── config.py
      └── demos
          ├── __init__.py
          └── demo.py
    

    再次执行:

    E:\toplevel>python -m project.demos.demo
    __file__=E:\toplevel\project\demos\demo.py   | __name__=__main__        | __package__=project.demos
    __file__=E:\toplevel\project\config.py       | __name__=project.config  | __package__=project
    The value of config.count is 5
    

    运行该命令将自动设置包信息(__package__变量)。现在,python解释器可以成功解析 project\ demos\demo.py 中的相对引用了(甚至认为 __name __ = __ main__ )。

    [1] 译者注:注意使用 -m 参数的时候,后面指定的执行文件没有 .py 后缀

    import-error-relative-no-parent

    注:转载请保留下面的内容

    原文链接:https://www.napuzba.com/story/import-error-relative-no-parent/

    译文链接:http://vimiix.com/post/2017/12/29/import-error-relative-no-parent/

    展开全文
  • JS错误Uncaught SyntaxError: Cannot use import statement outside a module< 分析及解决方法 错误信息: 错误分析: HTML 网页中,浏览器通过 script 标签加载 JavaScript 脚本。由于浏览器脚本的默认语言是 ...

    JS错误Uncaught SyntaxError: Cannot use import statement outside a module< 分析及解决方法

    错误信息:

    在这里插入图片描述

    错误分析:

    HTML 网页中,浏览器通过 script 标签加载 JavaScript 脚本。由于浏览器脚本的默认语言是 JavaScript,因此type="application/javascript"可以省略。在报错中了解到,是说无法在模块外部使用import语句,因为Module 的加载实现的是es6语法,所以在浏览器加载html文件时,需要在script 标签中加入type="module"属性。

    解决办法:

    在这里插入图片描述

    展开全文
  • Python import同级目录报错

    万次阅读 多人点赞 2017-08-16 17:55:54
    Python import同级目录报错

    参考:http://blog.csdn.net/geekleee/article/details/52505233

     

    pycharm不会将当前文件目录自动加入自己的sourse_path。右键make_directory as-->Sources Root将当前工作的文件夹加入source_path就可以了。
     
    还有一点:
    models加一个点,表示同级目录。from .models import classN

     

     

    import功能实际应用还有很多坑:
    比如,不通过模块名字,直接引入模块内的类 
    我们创建一个包叫ccc,然后下面的init里面什么也没写,都是空的 
    然后bbb.by里面的内容是:

    def a():
        print (1)
    •  

    如果你要访问这个函数a 
    首先第一点,一个写法: 
    from ccc.bbb import a ,注意,他只能通过 包名.模块名来import具体函数 
    如果你直接用from ccc import a ,是会报警的,报警如下:

    >>> from ccc import a
    Traceback (most recent call last):
      File "<input>", line 1, in <module>
    ImportError: cannot import name 'a'
    •  

    其实,关键是,如果你要通过from ccc import a,重要的是init的内容 
    如果我们把init内容写成下图3 
    from .bbb import a,这里面的 .bbb是什么意思呢?就是在同级目录下面的bbb模块,如果前面是2个点,那就是上级目录的bbb

    现在,要讲一个重要概念!!! 
    当你导入一个包的时候,实际上是导入了这个包的init.py的文件,所以,如果你在init里面写入了其他的import功能,就等于是在初始化的时候帮忙导入了其他东西。 
    就比如下面的例子,他在导包的时候,就顺便导入了a这个函数!! 
    这里写图片描述 
    从这个话题引申到其他话题,我在做flask第一节课的时候一直无法理解,为什么from flask import Flask可以成功? 
    第一个flask是包,第二个Flask是类,但是,实际上这个Flask类是在flask包的目录下app.py里面的。 
    所以后来我去看了flask包的init.py,原来在里面,他已经帮你导入了Flask类,所以你在导入flask包的时候,就已经可以直接导Flask类了 
    看到里面的 from .app import Flask, Request, Response 
    .app就表示了在flask包下,和init同级的app.py 
    这里写图片描述

     
     

     

     

     

    展开全文
  • java中import作用详解

    万次阅读 多人点赞 2017-07-07 17:47:19
    java中import详解import与package机制相关,这里先从package入手,再讲述import以及static import的作用。
  • python中的import、from import以及import as的区别

    万次阅读 多人点赞 2019-07-02 22:18:48
    首先介绍一下import和include的区别或者说import相对include的好处: import导入的内容只会被包含一次,在引入之前会检测是否已经存在该模块,不存在才会被引入,而include是不会做判断的。使用import在递归包含的...
  • pycharm如何自动import所需的库

    万次阅读 2020-08-23 11:43:03
    pycharm如何自动import所需的库快捷键命令演示操作(以mac为例)1.未导入包时情景2.按option + Enter键唤起菜单3.选择导入包(Import this name)4.选择包的地址5.导入成功,红色下划线消失 快捷键命令 win: Alt + ...
  • import static和import的区别

    万次阅读 2019-03-31 21:42:44
    什么是import static? import static 静态导入是JDK1.5中的新特性。一般我们导入一个类都用 import com…ClassName;而静态导入是这样:import static com…ClassName.;这里的多了个static,还有就是类名ClassName...
  • PyImport_ImportModule

    千次阅读 2017-12-14 17:38:40
    pModule = PyImport_ImportModule("get")总是返回空值NULL get.py:  from keras.models import load_model from keras.models import Model import tensorflow as tf import numpy as np def ...
  • Python 3.x | 史上最详解的 导入(import

    万次阅读 多人点赞 2018-07-27 15:05:02
    win10+Python 3.6.3 一、理解一些基本概念 1、包、模块 模块 module:一般情况下,是一个以.py为后缀的文件。其他可作为module的文件类型还有”.pyo”、”.pyc”、”.pyd”、”.so”、”.dll”,但Python初学者...
  • python import 上级目录

    万次阅读 热门讨论 2018-05-12 10:48:07
    python import 上级目录   有时候我们可能需要import另一个路径下的python文件,例如下面这个目录结构,我们想要在_train.py里import在networks目录下的_lstm.py和上级目录下的_config.py。 _config.py networks...
  • empty line after import statement not followed by another import. (import/newline-after-import) import语句后的空行后面没有另一个import。(导入/导入后换行) 回车换行一下就解决了 ...
  • 什么鬼,看不懂,不是说import sklearn 后应该可以通过点.来访问sklearn里的所有内容吗,就像numpy中那样。初学者,不懂,求大神解释下,不胜感激!! 这样也报错 ``` import sklearn.datasets a=datasets...
  • 注意import和from import 的区别

    万次阅读 多人点赞 2019-05-29 10:02:40
    注意python中import和from import 的区别 首先明确:尽量不要为了图省事使用from xxx import * python中有两种导入模块的方式,一种是import xxx,另一种是from xxx import yyy,两者的区别在于,第一种仅仅导入一个...
  • import os

    千次阅读 2019-07-25 15:31:52
    为什么要执行import os? import os的作用是什么? 1、为什么要执行import os? 我们在python下写程序,需要对文件以及文件夹或者其他的进行一系列的操作。但是,我们怎么在python中对文件进行操作呢?这就引入了os...
  • 通过Python PyImport_ImportModule() 或者 PyImport_Import()导入自定义模块时,若不成功有可能是该自定义文件中其实位置import第三方的库没有安装,如requests;
  • 系统重装之后,Idea的配置是之前就认为没什么问题,就没去过多注意,但是后来发现建SpringBoot项目默认的版本太高,pom.xml每次都会报错,因为是maven本地库没有相应的包,我就手动设置一下版本,混过过去就算了,没...
  • import sys

    千次阅读 2019-07-25 15:10:00
    import sys 的作用是什么? 参考来源 1、首先,先看一段代码 1. from sys import argv 2. script,first,second,third=argv 3. print ("The script is called: ",script) 4. print ("you first variable is: ",...
  • Python中import, from...import,import...as的区别

    万次阅读 多人点赞 2017-07-26 10:01:51
    在python中import或者from…import是用来导入相应的模块。举个例子:import datetime print(datetime.datetime.now())以上代码实现输出系统当前时间,是引入整个datetime包,然后再调用datetime这个类中的now()方法...
  • import与@import的区别

    千次阅读 2017-09-08 14:21:29
    前端面试秘籍,欢迎star!...style中的@import是stylus的语法(没用过stylus, 不知道引用文件是不是@import) 也就是在css中引用css文件, 就像saas那样理论上效果都是一样的, 都是将依赖的文件在打包的时候一块打包进去 ...
  • import torchvision 时 cannot import name optional怎么解决
  • idea的Import changes 和enable auto-import

    千次阅读 2019-10-20 00:23:12
    Import Changes:导入我们新添加的依赖 Enable Auto-Import:以后更改 .pom 文件后自动下载依赖包 最简单的说法,如果你想勤快点儿,修改一点儿pom.xml就点一下,你就选import changes 否则,你就选enable auto...
  • python import 与 from...import 区别介绍

    千次阅读 2020-07-07 12:35:12
    在 python 用 import 或者 from...import 来导入相应的模块。 将整个模块(somemodule)导入,格式为: import somemodule 从某个模块中导入某个函数,格式为: from somemodule import somefunction 从某个模块...
  • 在做knn算法时,看到unmpy的不同引用方法,不知道其区别,后来查了资料后知道了两者区别,简单记录一下摘自 https://zhidao.baidu.com/question/877431035722473172.html(1)import numpy,如果你使用numpy的属性...
  • 关于importimport...as与from...import

    千次阅读 2017-10-23 22:49:53
    这边说明一下import以及from....import以及import.....as import datetime print(datetime.datetime.now()) 以上代码实现输出系统当前时间,是引入整个datetime包,然后再调用datetime这个类中的now()方法。 ...
  • Python importimport *的区别

    千次阅读 2019-05-31 10:49:31
    import numpy 这是导入了整个numpy模块,需要使用句点表示法访问需要的类。例如 a = numpy.array([1,1]) 导入方法二: from numpy import * 这是导入了numpy模块的每个类,可以直接使用类,无需...
  • import 模块:导入一个模块,注:相当于导入的是一个文件夹,每次使用模块中的函数都要确定引用 from…import模块:导入的是一个模块中的一个函数;注:相当于导入的是一个文件夹中的文件,是绝对路径 from…...
  • 运行nodejs项目,npm start启动项目import报错,SyntaxError: Cannot use import statement outside a module
  • Python import 和 from import区别

    千次阅读 2016-05-23 19:08:29
    导入mode,import与from...import的不同之处在于,简单说: 如果你想要直接输入argv变量到你的程序中而每次使用它时又不想打sys, 则可使用:from sys import argv 一般说来,应该避免使用from..import而使用...
  • sqoop import -connect jdbc:oracle:thin:@1.1.1.1:1521:aaa -username a -password a -table xx.xxxx -hive-import xxx.xxxx -m 1 ERROR tool.ImportTool: Error during import: Import job failed! 由于是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,444,284
精华内容 577,713
关键字:

import