浅谈Python模块导入规范

模块导入的规范

模块是类或函数的集合,用于实现某个功能。模块的导入和Java 中包的导入的概念很相似都使用import语句。在Python中,如果需要在程序中调用标准库或其他第三方库的类时,需要先使用import或from. … import. …语句导入相关的模块。

import语句

使用import语句导入sys模块,并打印相关内容的方法
代码

# 规范导入方式
import sys
print(sys.path)
print(sys.argv)

第⒉行代码使用import语句导入了sys模块,sys模块是处理系统环境的函数的集合。
第3行代码输出Python 环境下的查找路径的集合,Python默认情况下会查找sys. path返回的目录列表。列表是Python内置的数据结构,定义了一组数据,通常用来作为参数或返回值。
第4行代码的sys. argv是存储输入参数的列表。默认情况下,argv自带的参数是文件名

运行结果

from… import….语句

代码

# 不规范导入方式
from sys import path
from sys import argv
print(path)
print(argv)

第5行、第6行代码直接调用path、argv列表的内容,没有模块名的限定,这种写法不够规范。如果程序比较复杂,导入了很多模块,阅读程序的人并不了解path、argv来自哪个模块。而sys. path、sys. argv的写法可以清楚地知道path、argv来自sys模块。

多级目录导入方法

需要了解两个模块:

  • sys模块
  • os模块
# 多级目录导入方法:
import sys, os
sys.path()  # 返回执行当前文件执行搜索的所有路径
BaseDir = os.path.abspath(__file__) # 获取当前文件的路径
addDir = os.path.dirname(os.path.dirname(BaseDir)) # 获取父目录地址
sys.path.append(addDir) #将改地址添加至默认搜索路径中
from logs import logger # 从包中导入模块
  • sys.path():其返回值是一个列表,内包含搜索的所有路径。
  • sys.path.append() : 是将目标路径追加至列表的末尾,也就是说,在搜索模块时,会先在当前目录进行搜索,进而到标准库,第三方库中进行搜索,如果都没有改模块,才会到追加的这个路径中进行搜索。如果标准库或第三方库中存在同名的模块,将不能访问到添加路径下的模块。
  • sys.path.insert(): 会把路径加入到python系统路径列表的最前边

到此这篇关于浅谈Python模块导入规范的文章就介绍到这了,更多相关Python模块导入内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python 模块导入问题汇总

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

  • 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

  • 解决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导入父文件夹中模块并读取当前文件夹内的资源

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

  • 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中常见的导入方式总结

    一.直接导入模块 import 模块名 优点:干净直接 import sys print(sys.path) import os # os是一个模块 import os.path # 注意这里的os.path是一个模块 二.直接导入包 import 包名 如果只导入包,在调用时不可使用.来找到模块,但可以访问到__init__.py下的类和函数. import bs4 # 注意这里bs4是一个包! soup = bs4.BeautifulSoup(...) # 可以访问到包中__init__.p

  • 安装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在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中添加模块导入路径的方法

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

  • 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

随机推荐