精华内容
下载资源
问答
  • 1.我最开始是使用的JAVA,在JAVA里面,都是由MVN帮忙...2.后来发现,原来是因为我习惯性的把from xxx import xxx写在sys.path.append前面,导致未执行sys.path.append的时候就出现找不到包的错误了。所以,只需...

    1.我最开始是使用的JAVA,在JAVA里面,包都是由MVN帮忙管理了,所以对包的概念也不是特别清楚,后来在用python的时候发现,自己写的包无法导入,即使使用了sys.path.append也无效。

    2.后来发现,原来是因为我习惯性的把from xxx import xxx写在sys.path.append前面,导致未执行sys.path.append的时候就出现找不到包的错误了。所以,只需要将sys.path.append写在import前面即可!如图

    sys.path.append()一定要在from mrcnn import utils前面!!!

    展开全文
  • 如图所示,对于python,有一个自定义包parent,它里面还有一个子包child,当你在parent.module1中import child.module2时,vscode会给你报错,说找不到这个包。 当你单独运行module1.py的时候,可以正常运行,但是当...

    本文在憧憬少的个人博客的链接

    问题描述

    如图所示,对于python,有一个自定义包parent,它里面还有一个子包child,当你在parent.module1import child.module2时,vscode会给你报错,说找不到这个包。

    当你单独运行module1.py的时候,可以正常运行,但是当你在parent包外层的main.pyimport parent.module1时,就会报错。

    vscode中python自定义包的模块如何导入其子包模块

    详细说明

    目录结构为:

    • main.py

    • parent

      • __init__.py
      • module1.py
      • child
        • __init__.py
        • module2.py

    其中:

    main.py

    # main.py
    import parent.module1
    

    parent.__init__.py

    # parent.__init__.py
    print('导入了parent包')
    

    child.__init__.py

    # child.__init__.py
    print('导入了child包')
    

    module1.py

    # module1.py
    import child.module2
    print('导入了module1模块')
    

    module2.py

    # module2.py
    print('导入了module2模块')
    

    分析原因

    当你单独运行module1.py的时候,可以正常运行,并输出:

    导入了child包
    导入了module2模块
    导入了module1模块
    

    这是因为vscode此时将module1.py作为相对路径的起点,从而找到了child.module2的位置。

    但是当你在parent包外层的main.pyimport parent.module1时,就会报错。

    这是因为vscode此时将main.py作为相对路径的起点,对于main.py来说,它所在目录下是没有child包的,只有parent包,所以找不到,报错。

    解决方案

    parent.__init__.py中添加三行代码,添加完之后如下所示:

    # parent.__init__.py
    import sys
    import os
    sys.path.append(os.path.dirname(os.path.realpath(__file__)))
    
    print('导入了parent包')
    

    python找包会在当前路径和sys.path中去查找,所以可以在导入parent包的时候,将它的路径加入sys.path当中,这样就可以找到parent包的子包了。

    同时,因为是在__init__.py中加的,包内文件就不必每次都将粘贴一次这部分代码。

    其中,os.path.realpath(__file__)获取本文件即parent.__init__.py的真实路径,os.path.dirname()将完整路径中的目录名提取出来,去掉其中的文件名。

    添加后main.py运行结果:

    导入了parent包
    导入了child包
    导入了module2模块
    导入了module1模块
    
    展开全文
  • VS Code 导入自定义包报错"No module named 'xxx'

    万次阅读 多人点赞 2019-03-10 23:02:47
    在学习Python的过程中,使用VS Code 进行编程时,导入自定义Python包,报错:“No module named 'xxx' ” 原理: 1、如果在当前文件目录底下可以找到导入的,那么可以直接使用from ... import ... 2、...

    在学习Python的过程中,使用VS Code 进行编程时,导入自定义的Python包,报错:“No module named 'xxx' ”

     

    原理:

    1、如果在当前文件目录底下可以找到导入的包,那么可以直接使用from ... import ...

    2、如果在当前文件目录底下找不到导入的包,则需要向sys.path添加包的所在的绝对位置。

    解决方法:

    当前文件为TestKNN.py,那么则需要在该文件开头添加以下代码:

    import sys,os
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  # __file__获取执行文件相对路径,整行为取上一级的上一级目录
    sys.path.append(BASE_DIR)

     

    展开全文
  • 在windows下使用pycharm开发python程序,包导入正常,但是移植到Linux却说包找不到了,No module named 'xxx' python包路径搜索机制 python搜索包的路径存储在sys.path下 临时添加python搜索包路径的方法: ...

    问题背景

    在windows下使用pycharm开发python程序,包导入正常,但是移植到Linux却说包找不到了,No module named 'xxx'

     

    python包路径搜索机制

    python搜索包的路径存储在sys.path下

    临时添加python搜索包路径的方法:

    import sys

    sys.path.append(‘路径’)

     

    小例子

    sys.path返回一个列表,里面装的字符串,也就是搜索路径。

    然后删除掉第一个,接着导入与  main.py同级目录的模块,发现导入失败。

    import sys
    del sys.path[0]
    import testPackage.module1
    

     

    重点问题

    项目目录结构

    -package1

    -main1.py

    -test_directory

      --main2.py     (放置在test文件夹下面)

    如果是在main1.py中导入package1,完全OK,没有任何问题

    如果是在main2.py中导入package1,出问题,找不到包

    如何解决呢?

    首先可以想到的是通过sys.path.append添加package1所在目录的绝对路径,这样可以解决问题,但是肯定不推荐,下载换个环境还得设置路径。

    推荐方法

    import os
    import sys
    dir_now=sys.path[0]
    dir_up=os.path.dirname(dir_now)
    dir_upup=os.path.dirname(dir_up)
    print(dir_now)
    print(dir_up)
    print(dir_upup)

    首先是如何获取当前文件的所在目录,上级目录,上上级目录,注意这里是相对当前文件的目录(而不是执行时的工作目录)

    然后我们就可以把相应的目录通过sys.path.append()添加进来

    final

    import os
    import sys
    dir_now=sys.path[0]
    dir_up=os.path.dirname(dir_now)
    dir_upup=os.path.dirname(dir_up)
    print(dir_now)
    print(dir_up)
    print(dir_upup)
    sys.path.append(os.path.dirname(sys.path[0]))
    import testPackage.module1
    
    #sys.path.append(os.path.dirname(os.path.dirname(sys.path[0])))  添加上上级目录 根据自己项目选择

     

     

     

    展开全文
  • 如图所示错误: python封装的关键字文件与robot执行程序的文件在同一目录下,导入python包时需要加上.py的后缀
  • 我在Windows上写的代码,其中由需要将自定义包里的一些数据导入到别的代码里用,在Windows上执行没有问题,但是部署Linux服务器上就出现问题了 结构如下: 在这里导入包中文件 部署Linux服务器上就...
  • 在CentOS 7 最小化安装python的mysql数据库操作模块mysql-python,在导入使用的时候出现so文件缺失导入错误的现象。 备注:我这边的mysql数据库是自定义打包的 1. MySQL-python模块安装 ~]# pip install ...
  • 这里导包就很简单了,因为在Python解释器在解释程序时会在系统中扫描相关的路径,不至于找不到。例如你安装了NumPy,你可以这样导入: import numpy 但是在写Python程序时,你的程序会显得繁琐,在Python编程...
  • 1 问题 最近在写一些爬虫相关的项目,发现其中有很多的操作都...但是发现,只有在pycharm中才可以导入自己的自定义包,如果在命令行中运行python文件的话,就会提示找不到,Google之后发现,是因为自己写的包没有添...
  • python-29-模块与包导入

    2020-03-14 12:37:00
    前言 模块与包导入,经常看到代码里开头那几行都是from xxx import xxx 或者 import xxx,这...1.modules里查找是否存在模块,存在即被导入,否则sys.path依次查找模块,找到导入,否则找不到调用时会报错 2.创建这...
  • 一、自定义模块 当你导入一个模块,python...3、如果都找不到Python会查看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。 模块搜索路径存储在system模块的 sys.path变量中。变量里包含当前目录,PYT...
  • Python之模块与

    2018-08-22 15:34:34
    # 首先在当前路径寻找,找不到在sys.path中找 # 可以导入变量名和函数名 3.模块分类 (1)内置模块   #内置模块的搜索路径 import sys print(sys.path) #列表 (2)自定义模块 #py文件中,__name__值为'__main...
  • 但是在命令行则不会报找不到自定义模块的错误 设置项目的初始位置,在任何位置执行代码可以找到import 项目不出错 1、查看已有默认路径,并加入项目根目录所在路径 >>> import sys >
  • python安装

    千次阅读 2019-08-02 21:31:11
    下载python ,下载地址 https://www.python.org/downloads/,我这里下载的是3.5.2版本的 ...可能找不到 python 导入模块出错 ImportError: No module named ‘request’ import request ImportError: No modul...
  • python xxx.py 直接在当前目录下搜寻xxx.py这个文件,没有就找不到 文件中导入按照sys.path中的路径顺序搜寻 必须为 xxx.py 不能省略.py,因为运行的是文件 如果文件中导入了别的自定义的文件,会报错 将自定义...
  • python模块module package

    2017-06-21 16:39:00
    python模块module ...程序会先从内置第三方再当前工作目录下去导入的模块,如果你自定义的模块在当前工作目录下就会报错。 模块 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字...
  • python基础五——模块

    2017-06-23 23:54:00
     import 模块的实质就是把要导入模块里面的代码,从上下执行一遍。模块的顺序是,首先是当前目录,然后是环境变量里。模块包含:标准模块、自定义模块和第三方模块。 标准模块:python自带的,需要安装,...
  • 并没有原始IP数据的支撑,数据来源请参考上面的描述,升级数据需要很多IP的支撑并且会对原始平台造成一定量的请求压力,本项目保证及时的数据更新,没有也不会有商用版本,你可以使用自定义的数据导入ip2region...
  • 并没有原始IP数据的支撑,数据来源请参考上面的描述,升级数据需要很多IP的支撑并且会对原始平台造成一定量的请求压力,本项目保证及时的数据更新,没有也不会有商用版本,你可以使用自定义的数据导入ip2region...
  • 测试培训教材

    2014-04-01 12:10:48
    练习2:从Office导入需求QC 参考 QCMSWordAddin.pdf 和 QCMSExcelAddin.pdf 项目管理员可以使用QC的Excel插件工具来执行需求的批量导入,进行导入之前请先确认已经访问过MQC主页,并安装了QCMSExcelAddin.exe插件...
  • 管家婆辉煌ⅡTOP+12.9(不带+12.9)辉煌版、五金建材版、皮革布匹版、电脑通讯版 四版通用去右下角广告去电子注册找不到狗完美免狗 立即下载 1积分/C币时间:2018-07-24 doc文件 管家婆366++搬移工具 使用过管家婆366+...

空空如也

空空如也

1 2 3
收藏数 45
精华内容 18
关键字:

python导入自定义包找不到

python 订阅