python 成功引入包但无法正常调用的解决

问题

python中 import ** 成功,但是不能调用它的函数或者属性,如下图所示

原因

log 和 setting 在python中属于自带的库函数。再重写 log 和 setting 函数文件后,即使成功引入,如果没有加标识,会默认调用自带的库函数。

本质原因:python2 和 python3 版本存在差异,很多问题看看python官网就很容易理解

解决办法

重写python自带库函数,例如 log 库函数,经常会被重写。一定要注意添加前缀,来避免调用到默认的,且在任何用到该重写文件*.py内函数,都要加前缀

本人另一篇文章对包引用有详细介绍 https://www.jb51.net/article/182291.htm

补充知识:python对库函数的引用方法

python引入库的方法有很多种,这里主要介绍一下其中的两种:

第一种引用方式:在程序头部增加:

如:import<库名>

例如:

import turtle
>>>import turtle
>>>turtle.fd(30)

这种方式引用库函数需要输入<库名>.<函数名>(库名点函数名)

第二种引用方式:

from<库名>import<函数名>或者from<库名>import*

例如:

>>>from turtle import*
>>>fd(100)

这种引用方式可以直接使用函数,不需要再加库名点

但是第一种方式用户可以重新定义一个函数叫fd,fd的功能可以是任意功能。第二种不可以重新定义fd函数,因为库turtle函数是直接调用的,但一般情况下两种引入方式没有什么区别。

有时候我们引入的库函数的名字比较长,但是我们在后面还需要经常使用这个库函数,这个时候我们就可以给这个库函数起一个比较简短的别名来使用,比如我们将turtle这个库函数命名为t:import turtle as t。这样书写我们就可以在后面的代码中用t来代替turtle了。比如之前我们要这样写来使画笔移动到(20,10)的位置:turtle.goto(20.10),但是使用import turtle as t之后就可以这样写:t.goto(20,10)是不是简便很多了呢。

以上这篇python 成功引入包但无法正常调用的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决Tensorflow安装成功,但在导入时报错的问题

    在Mac上按照官网教程安装成功tensor flow后,但在程序中导入时,仍然报错,包括但不限于以下两个错误.对于这种错误,原因主要在于Mac内默认的python库比较老了,即便通过pip命令安装了新的包,python也会默认导入默认位置的包.这时候需要做的就是删除,有冲突的包,对于以下两个错误,就是分别时numpy和six两个包冲突了. 可以在python命令行环境下,通过numpy.version和six.version两个命令查看当前版本,如果与预期的不一致,就可以删掉. 可以通过nump

  • 解决pycharm无法调用pip安装的包问题

    问题:pycharm无法调用pip安装的包 原因:pycharm没有设置解析器 解决方法: 打开pycharm->File->Settings->Project Interpreter->设置为你的python路径,我的是:C:\Python27\python.exe,你们根据各自python安装路径修改一下即可 可以先在terminal中,python 显示当前版本,再选择路径,因为通过pip安装的包都在该版本下 有时候需要重新建立一个工程,是因为你的工程混乱了,不知道用哪个py

  • python 成功引入包但无法正常调用的解决

    问题 python中 import ** 成功,但是不能调用它的函数或者属性,如下图所示 原因 log 和 setting 在python中属于自带的库函数.再重写 log 和 setting 函数文件后,即使成功引入,如果没有加标识,会默认调用自带的库函数. 本质原因:python2 和 python3 版本存在差异,很多问题看看python官网就很容易理解 解决办法 重写python自带库函数,例如 log 库函数,经常会被重写.一定要注意添加前缀,来避免调用到默认的,且在任何用到该重写文件

  • python 中不同包 类 方法 之间的调用详解

    目录结构如下: 在hello.py中导入ORM.py这个文件的时候,采用 import ORMPackage.ORM 或者 import ORM u = User(id = 123, name='codiy', email='codiy_huang@163.com', password='123456') 两种方式均报错 错误提示: name '***' is not defined 或者 No module named ORM 解决办法: 方法一 将包所在的目录添加到sys.path路径 im

  • 浅谈python import引入不同路径下的模块

    python 包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径. 下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构: `-- src     |-- mod1.py     `-- test1.py 若在程序test1.py中导入模块mod1, 则直接使用 import  mod1或from mod1 import *; (2)主程序所在目录是模块所在目录的父(或祖辈)目录 如下面程序结构: `-- src     |--

  • 在Python 不同级目录之间模块的调用方法

    Python的模块有自带的也有第三方,还可以自定义然后引用 1.调用自带的模块,例如,sys 调用自带的模块只需要import sys 引入既可以使用 2.第三方的需要先安装模块然后再import引入 3.自定义: (1)同级目录模块的调用 test -----t1.py -----t2.py -----test1 -----------testm.py -----test2 -----------testmm.py t1.py要调用t2.py中的模块: import t2 t2.func()

  • 解决python 虚拟环境删除包无法加载的问题

    项目开发一直在docker的虚拟环境上,遇到了一个问题,就是把虚拟环境的包删掉(rm -rf xxx)之后,再重新拷贝一个(跟原来包一模一样的文件夹)进去发现pycharm再也找不到这个包了,后来在同事的帮助下一步步的解决了这个问题: 解决流程: 1.定位问题 在虚拟环境下引入这个包: #进入虚拟环境 source bin/activate #1.进入python #2.引入报错的包 (xenwebsite-env)[root@aeb02c10de04 xenwebsite-env]# pyth

  • 详解python关于多级包之间的引用问题

    首先得明确包和模块. 包:在一个目录下存在__init__.py,那么该目录就是一个包. 模块:一个.py文件就是一个模块. 我们可以通过from 包 import 模块来引入python文件,也可以使用from 包.模块 import 模块中的函数或类. 具体看一下例子. 假设我们现在有以下的目录: 我们想在main.py中使用package_a和package_b里面额模块,可以这么使用: from package_a import tmp2 from package_b import tm

  • Python学习之包与模块详解

    目录 什么是 Python 的包与模块 包的身份证 如何创建包 创建包的小练习 包的导入 - import 模块的导入 - from…import 导入子包及子包函数的调用 导入主包及主包的函数调用 导入的包与子包模块之间过长如何优化 强大的第三方包 什么是第三方包 如何安装第三方包 总结 大家好,学完面向对象与异常处理机制之后,接下里我们要学习 包与模块 .首先我们要了解什么是包?什么是模块?接下来我们还要学习 如何自定义创建包.自定义创建模块以及如何导入包与模块.最后我们在学习如何使用第三方

  • Python的pycurl包用法简介

    pycurl是功能强大的python的url包,是用c语言写的,速度很快,比urllib和httplib都快 调用方法: import pycurl c = pycurl.Curl() c.setopt(pycurl.URL, 'http://api.minicloud.com.cn/statuses/public_timeline.xml') import StringIO #这个用到里面的write函数 b = StringIO.StringIO() c.setopt(pycurl.WRIT

  • Python科学计算包numpy用法实例详解

    本文实例讲述了Python科学计算包numpy用法.分享给大家供大家参考,具体如下: 1 数据结构 numpy使用一种称为ndarray的类似Matlab的矩阵式数据结构管理数据,比python的列表和标准库的array类更为强大,处理数据更为方便. 1.1 数组的生成 在numpy中,生成数组需要指定数据类型,默认是int32,即整数,可以通过dtype参数来指定,一般用到的有int32.bool.float32.uint32.complex,分别代表整数.布尔值.浮点型.无符号整数和复数 一

  • python中logging包的使用总结

    1.logging 简介 Python的logging package提供了通用的日志系统,可以方便第三方模块或者是应用使用.这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式. logging包中定义了Logger.Formatter.Handler和Filter等重要的类,除此之外还有config模块. Logger是日志对象,直接提供日志记录操作的接口 Formatter定义日志的记录

随机推荐