Python中常见的导入方式总结

一、直接导入模块

import 模块名

优点:干净直接

import sys
print(sys.path)
import os # os是一个模块
import os.path # 注意这里的os.path是一个模块

二、直接导入包

import 包名

如果只导入包,在调用时不可使用.来找到模块,但可以访问到__init__.py下的类和函数。

import bs4 # 注意这里bs4是一个包!
soup = bs4.BeautifulSoup(...) # 可以访问到包中__init__.py下的类和函数

import Mypack
# Mypack.fun.func() 会报错,找不到fun模块,需要使用方法3或6来导入特定模块

三、导入包中的一个模块

import 包名.模块名

包使用的注意事项

  • 需要先将包(文件夹)写在sys.path列表中的一个目录下,如果没有需要使用列表的append方法追加进去。
  • 在包中需要再写一个__init__.py文件表示这是一个包,文件可以为空。在__init__.py下写的函数和类可以在只导入包的情况下访问到(如只导入bs4包,可以使用BeautifulSoup类,但不可以使用包中的其他模块)。
import sys
sys.path.append(r"E:\\")

import Mypack.fun
Mypack.fun.func()

四、导入模块并取别名

import 模块名 as 别名

优点:别名方便记忆

import sys as s
print(s.path)

import Mypack.fun as f
f.func()

五、从模块(或者包)中取出特定函数(不建议)

from 模块名(包名) import 函数名

优点:直接取出特定函数,无需再加命名空间。

缺点:无命名空间限制,容易乱。

from sys import setrecursionlimit
setrecursionlimit(500)

from bs4 import BeautifulSoup # 这里取出了bs4包中__init__.py文件中的BeautifulSoup类
soup = BeautifulSoup(...)

用通配符导入模块中的所有函数,且无需加命名空间。

from sys import *
setrecursionlimit(500)

六、从包中取出特定模块

from 包名 import 模块名

优点:相较方法3在调用时可以少写包名。

from Mypack import fun
fun.func()

到此这篇关于Python中常见的导入方式总结的文章就介绍到这了,更多相关Python常见导入方式内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 聊聊python在linux下与windows下导入模块的区别说明

    我就废话不多说了,大家往下看吧~ P |-A | a.py |-B | b.py 文件结构如上,在windows下 a想运行b中的方法,可以直接写成 from B impot b b.fun() 但是在linux中会出现 ModuleNotFoundError: No module named 'B' 可以通过引入sys添加路径解决 import sys sys.path.append("/P/B") from B impot b 在程序中为了也有良好的移植性,可以在代码中显式添加路径

  • 浅谈Python模块导入规范

    模块导入的规范 模块是类或函数的集合,用于实现某个功能.模块的导入和Java 中包的导入的概念很相似都使用import语句.在Python中,如果需要在程序中调用标准库或其他第三方库的类时,需要先使用import或from. - import. -语句导入相关的模块. import语句 使用import语句导入sys模块,并打印相关内容的方法 代码 # 规范导入方式 import sys print(sys.path) print(sys.argv) 第⒉行代码使用import语句导入了sys模

  • python 模块导入问题汇总

    问题描述 此时start.py是启动程序,引入了core包中的user_control,transfer,withdraw三个模块文件 但执行start.py的时候,出现了以下错误: 上图中显示的问题是:在transfer.py导入user_control模块的时候,无法找到该模块. 问题查找 当时我就纳闷了,user_control和transfer在同一个包中,按理来说不用做任何处理就能导入.而且在导入user_control的时候也没有报错. 然后我单独执行了transfer.py文件,没

  • 解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题

    标题用pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation ('D:\python3.6\lib\site-packages\numpy\init.py 1.file→settings→project interpreter→+(建议用pychon3.6版本,我之前用3.8版本安装不上numpy), 2.搜索numpy,注意把下面对号点上 3.现在简单用numpy还是会报错:RuntimeError: The cu

  • python 如何把docker-compose.yaml导入到数据库相关条目里

    实现将docker-compose.yaml导入相关的数据库条目的功能,利用python脚本,yaml.sqlalchemy.json等模块实现. docker-compose.yaml _version: "1" services: webapp: build: context: ./dir dockerfile: Dockerfile-alternate args: buildno: 1 python deme文件. #!/usr/bin/env python # -*- codi

  • Python导入父文件夹中模块并读取当前文件夹内的资源

    在某些特殊情况下,我们的 Python 脚本需要调用父目录下的其他模块.例如: 在编写 GNE 的测试用例时,有一个脚本 generate_new_cases.py放在 tests文件夹中.而 tests 文件夹与 gne 文件夹放在同一个位置.其中 gne 文件夹是一个包.我现在需要从generate_new_cases.py 文件中导入 gne 里面的一个类GeneralNewsExtractor. 为了简化问题,我单独写了一个演示的样例.它的文件结构与每个文件中的内容如下: 现在,我直接在

  • 安装python-docx后,无法在pycharm中导入的解决方案

    又遇到了一个坑.. 类似于安装py2neo时遇到的问题差不多... 今天准备试一下docx,按照网上的步骤直接在命令行中 pip install python-docx 打开命令 python >>>import docx 没有报错,磨刀霍霍准备在pycharm中试一下 打开pycharm傻眼了... 找不到 docx模块..可是明明已经安装了..在D:\Python3_7_1\Lib\site-packages也找到了docx文件夹 几经搜索,终于知道了在pycharm中使用第三方包,

  • python中添加模块导入路径的方法

    python中自定义模块导入路径的方式主要有以下3种: (1)使用sys.path.append()随着程序执行,会动态地添加模块导入的路径,但是程序执行结束后就会立即失效(临时性的) import sys sys.path.append('自定义路径') (2)加入到环境变量PYTHONPATH用于当前用户 在用户主目录下有一个 .bashrc 隐藏文件,打开文件 sudo vim ~/.bashrc 添加单个路径的方法 export PYTHONPATH=<自定义路径>:$PYTHONPA

  • python import 上级目录的导入

    有时候我们可能需要import另一个路径下的python文件,例如下面这个目录结构,我们想要在_train.py里import在networks目录下的_lstm.py和上级目录下的_config.py. _config.py networks _lstm.py _cnn.py pipelines _train.py 只需两步操作 (1)在networks文件夹下创建空的__init__.py文件 _config.py networks _lstm.py _cnn.py pipelines _t

  • python包的导入方式总结

    1.from ... import 导入 from package import module1, module2, module3, ... ... 此种导入方法不执行 __init__ 的内容. from pkg01 import p01 p01.sayHello() 2.from package import * 导入当前包 __init__.py 文件中所有的函数和类. 使用方法 func_name() class_name.func_name() class_name.var 3.im

随机推荐