首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一文搞懂Python的核心概念:导入模块

PART 01 前言 Python作为一个解释器,一个程序,如果不导入任何外部模块,就做不了什么。理解Python如何导入模块将在几乎所有的场景中都很有帮助。...从哪里进口(import) 当使用import关键字导入,Python会循环sys. path的路径列表。加载它的路径。...其他可能在下游程序给出相同的名称,并且可能会受到“类型错误异常”的欢迎。 规则3:取正确的名字。 您可能会看到下面列出的许多导入样式,但是哪一种是最好的,哪一种应该避免?...PART 01 检查导入模块 当你导入一个模块,你如何知道这个模块的内部?当然,您可以查看文档,但如果您很懒,不想启动无聊的文档怎么办?Python提供了一种方便的方式来实现这一点。...因此,我们可以使用__name__来检测程序是否直接执行或是否从其他程序中导入。在设计自定义特别有用。

1.1K10

python已安装了一个,但是导入模块时报错没有这个

执行import sys; print(sys.path)查看python搜索路径,确保自己的模块在python搜索路径 python的搜索路径与(package) python的搜索路径其实是一个列表...,它是指导入模块,python会自动去找搜索这个列表当中的路径,如果路径存在要导入模块文件则导入成功,否则导入失败: >>> import sys >>> sys.path ['', 'C:\\Python33...,如果不是按照标准方式安装,则为了能够引用(import)这些模块,必须将这些模块的安装路径添加到sys.path,有以下几种方法: 最简单的方法:是在sys.path的某个目录下添加路径配置文件,...路径配置文件的扩展名是”.pth”,其中的每一行包含一个单独的路径,该路径会添加到sys.path列表(已验证)。”....pth”的路径既可以是绝对路径,也可以是相对路径,如果是相对路径,则是相对于包含”.pth”文件的路径而言的。 终极解决办法:重新安装python

5.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

详解Python项目开发自定义模块对象的导入和使用

背景:1)任何一个Python程序文件既可以直接执行,也可以作为模块导入再使用其中的对象;2)对于大型系统开发,一般不会把所有代码放到单个文件,而是根据功能将其分类并分散多个模块,在编写小型项目最好也能养成这样的好习惯...本文介绍Python自定义模块对象的导入和使用。...,child模块没有可用的add,这是因为child文件夹被认为是一个,而add.py是的子模块,并没有随着child一起导入。...继续执行下面的代码: >>> import child.add >>> child.add.add(3,5) 8 自定义模块的对象成功被导入并能够正常使用,也就是说,如果要使用的对象在子模块,应该单独使用...原因在于,如果文件夹作为来使用,并且其中包含__init__.py文件,__init__.py文件的特殊列表成员__all__用来指定from ... import *哪些子模块或对象会被自动导入

3K50

Python|Google Python样式指南

2 Python语言规则 2.1 Lint 对你的代码运行pylint 2.1.1 定义 pylint是用于在Python源代码查找错误和样式问题的工具。...2.2 导入 仅对模块使用导入 2.2.1 定义 从一个模块到另一个模块共享代码的可重用机制。 2.2.2 优点 命名空间管理约定很简单。...2.2.4 结论 使用import x导入模块。 使用from x import y,其中x是前缀,y是没有前缀的模块名称。...即使模块在同一个,也要使用完整的名。这有助于防止无意中导入两次。 2.3 使用模块的完整路径名位置导入每个模块。...它还允许控制流在发生某种情况跳过多个帧,例如,在一个步骤从N个嵌套函数返回,而不必携带错误代码。 2.4.3 缺点 可能导致控制流程混乱。进行库调用时容易错过错误情况。

1.6K20

Python基础—让你规范Python语言的使用

优点: 可以捕获容易忽视的错误, 例如输入错误, 使用未赋值的变量等. 缺点: pylint不完美....有些模块名太长, 不太方便. 结论: 使用 import x 来导入模块. 使用 from x import y , 其中x是前缀, y是不带前缀的模块名....使用 from x import y as z, 如果两个要导入模块都叫做y或者y太长了. 导入时不要使用相对名称. 即使模块在同一个, 也要使用完整名....这能帮助你避免无意间导入一个两次. 优点: 避免模块名冲突. 查找更容易. 缺点: 部署代码变难, 因为你必须复制包层次. 结论: 所有的新代码都应该用完整名来导入每个模块....当捕获异常, 使用 as而不要用逗号. 例如 全局变量 定义: 定义在模块级的变量. 优点: 偶尔有用. 缺点: 导入时可能改变模块行为, 因为导入模块时会对模块级变量赋值.

1.5K80

关于Python语言规范你需要知道的一些小tips

优点: 可以捕获容易忽视的错误, 例如输入错误, 使用未赋值的变量等. 缺点: pylint不完美....每个标识符的源都用一种一致的方式指示. x.Obj表示Obj对象定义在模块x. 缺点: 模块名仍可能冲突. 有些模块名太长, 不太方便. 结论: 使用 import x 来导入模块....使用 from x import y , 其中x是前缀, y是不带前缀的模块名. 使用 from x import y as z, 如果两个要导入模块都叫做y或者y太长了....即使模块在同一个, 也要使用完整名. 这能帮助你避免无意间导入一个两次. 3、使用模块的全路径名来导入每个模块 优点: 避免模块名冲突. 查找更容易....结论: 所有的新代码都应该用完整名来导入每个模块.

1.7K60

Python代码分析工具:PyCheck

首先,PyChecker会导入所检查文件包含的模块,检查导入是否正确,同时检查文件的函数、类和方法等。...PyChecker可以检查出来的问题有如下几种: 全局量没有找到,比如没有导入模块 传递给函数、方法、构造器的参数数目错误 传递给内建函数和方法的参数数目错误 字符串格式化信息不匹配 使用不存在的类方法和属性...覆盖函数改变了签名 在同一作用域中重定义了函数、类、方法 使用未初始化的变量 方法的第一个参数不是self 未使用的全局量和本地量(模块或变量) 未使用的函数/方法的参数(不包括self) 模块、类...在代码文件中导入PyChecker模块及使用: import pychecker.checker 这将会检查所有在PyChecker之后导入模块,之前的不检查。...(E) error错误。很可能是代码错误。 (F) 致命错误。阻止 Pylint 进一步运行的错误。 Report report报告用来统计一些message类型的数量,模块的依赖等。

3.5K20

Python 测试基础

注意 在 Windows ,从命令行运行这两个工具,将分别使用批处理文件 pychecker.bat 和 pylint.bat。...使用 PyLint 检查文件,需要将模块(或)名作为参数: pylint module 要获悉有关这两个工具的详细信息,可使用命令行开关-h 运行它们。...PyChecker 和 PyLint 都可作为模块(分别是 pychecker.checker 和 pylint.lint)导入,但它们并不是为了以编程方式使用而设计的。...导入 pychecker.checker ,它会检查后续代码(包括导入模块),并将警告打印到标准输出。...为让 PyLint 噤声,我稍微修改了模块 my_math(而不是通过配置,让 PyLint 在面对变量名太短、缺失修订号和文档字符串等情况一声不吭)。

1.5K10

Google Python 编程风格指南

不过伪告警应该很少.优点:可以捕获容易忽视的错误, 例如输入错误, 使用未赋值的变量等.缺点:pylint不完美....有些模块名太长, 不太方便.结论:使用 import x 来导入模块.使用 from x import y , 其中x是前缀, y是不带前缀的模块名.使用 from x import y as z...即使模块在同一个, 也要使用完整名. 这能帮助你避免无意间导入一个两次. 使用模块的全路径名来导入每个模块 优点:避免模块名冲突....先用于帮助内核找到Python解释器, 但是在导入模块, 将会被忽略. 因此只有被直接执行的文件才有必要加入#!....导入应该按照从最通用到最不通用的顺序分组: 标准库导入 第三方库导入 应用程序指定导入 每种分组, 应该根据每个模块的完整路径按字典序排序, 忽略大小写. import foo from foo

66230

python代码检查工具pylint-让你的python更规范

不进入模块所在的文件夹,运行 pylint [options] directory/module.py 这种调用方式当如下条件满足的时候是可以工作的:directory 是个 Python ( 比如包含一个...此外,对于安装了 tkinter 的机器,可以使用命令 pylint-gui打开一个简单的 GUI 界面,在这里输入模块或者的名字 ( 规则同命令行 ), 点击 Run,Pylint 的输出会在 GUI...源代码分析部分: 对于每一个 Python 模块Pylint 的结果首先显示一些"*"字符 , 后面紧跟模块的名字,然后是一系列的 message, message 的格式如下: MESSAGE_TYPE...(E) 错误。很可能是代码错误。 (F) 致命错误。阻止 Pylint 进一步运行的错误。 清单 2....比如有两个 module A 和 B, 如果一共检查出来 4 个错误,1 个错误是在 A ,3 个错误是在 B ,那么 A 的错误的百分比是 25%, B 的错误的百分比是 75%。

3.7K40

NumPy 秘籍中文第二版:八、质量保证

安装 Pyflakes Pyflakes 是 Python 代码分析。 它可以分析代码并发现潜在的问题,例如: 未使用的导入 未使用的变量 准备 如有必要,请安装pip或easy_install。...但是,Pyflakes 报告的错误类型的数量是有限的。 使用 Pylint 分析代码 Pylint 是另一个由 Logilab 创建的开源静态分析器 。...在编写本书,最新版本是 0.8.19,最近一次更新是在 2011 年。Pychecker 尝试导入每个模块并对其进行处理。...使用doctest模块运行测试: doctest.testmod() 以下是本书代码docstringtest.py文件的完整测试示例代码: import numpy as np import doctest...作为 NumPy 的用户,我们也可以使用numpy.testing模块的便捷函数。 顾名思义,该模块专用于测试。

78320

维护Python代码的5种工具

1、 Pylint Pylint 是一个检查违反 PEP 8 规范和常见错误的库。它在一些流行的编辑器和 IDE 中都有集成,也可以单独从命令行运行。...然后运行 pylint [options] path/to/dir 或者 pylint [options] path/to/module.py 就可以在命令行中使用 Pylint,它会向控制台输出代码违反规范和出现错误的地方...你还可以使用 pylintrc 配置文件来自定义 Pylint 对哪些代码错误进行检查。...文档还提供了更多的配置项,例如通过配置 .isort.cfg 文件来决定 isort 如何处理一个库的多行导入。...4、 Autopep8 Autopep8 可以自动格式化指定的模块的代码,包括重新缩进行、修复缩进、删除多余的空格,并重构常见的比较错误(例如布尔值和 None 值)。

1.9K20

Python的site钩子机制

根据 Python 的文档,首先是当前目录,然后是 PYTHONPATH 环境变量,再之后是安装设置的默认目录,由 site 模块控制。...使用的前缀值保存在模块级变量 PREFIXES 以供稍后参考。在 Windows 下,后缀是一个空字符串和 lib/site-packages 。...除了全局站点路径之外, site 还负责将用户特定的位置添加到导入路径。用户特定的路径都基于 USER_BASE 目录,该目录通常位于当前用户拥有(和可写)的文件系统的一部分。...自定义Site模块 site 模块还负责在 sitecustomize 模块中加载由本地站点所有者定义的站点范围的定制。...sitecustomize 的用途包括扩展导入路径并启用覆盖,分析或其他开发工具。

19630

Python语言编程规范与优化建议

如果某个代码段的缩进不对,那么整个程序就是错的,要么是语法错误无法执行,要么是逻辑错误导致错误结果。 (2)每个import语句只导入一个模块,并且要按照标准库、扩展库、自定义库的顺序依次导入。...另外,尽量避免导入整个库,最好只导入确实需要的对象。 (3)最好在每个类、函数定义后增加一个空行,在不同功能代码段之间增加一个空行,在运算符两侧各增加一个空格,逗号后面增加一个空格。...稍微有点例外的是,在正常的赋值表达式中等号两侧都是各增加一个空格,但在调用函数并使用关键参数一般并不在等号两侧增加空格。正所谓“张而不弛,文武弗能也;弛而不张,文武弗为也;一张一弛,文武之道也。”...统计数据表明,一个可读性较好的程序应包含大概30%以上的注释。在Python中有两种常用的注释形式:#和三引号。...也可以使用pip install pylint安装Python代码检查工具pylint,然后使用命令行工具pylint来检查程序的规范性,或者使用可视化工具pylint-gui来完成同样的任务。

1.2K40

Python|Google Python样式指南(3)

下列情况除外: (1)长导入语句。 (2)URL、路径名或注释的长标志。 (3)不包含空格的长字符串模块级常量,不便跨行拆分,如URL或路径名。 (4)Pylint禁用注释。...,位于模块注释和文档字符串之后,模块全局变量和常量之前.导入应该按照从最通用到最不通用的顺序分组: Python将来的导入语句。...例如: import sys 第三方模块或软件导入。例如: import tensorflow as tf 代码存储库子导入。...例如: from otherproject.ai import mind 不推荐使用:特定于应用程序的导入,属于与此文件相同的顶级子程序的一部分。...3.17 Main 在Python, pydoc以及单元测试要求模块必须是可导入的.代码应该在执行主程序前总是检查 if __name__ == '__main__' , 这样当模块导入时主程序就不会被执行

81232

python 规范审查 pylint 的使用

Pylint 的输出 对于每一个 Python 模块Pylint 的结果首先显示一些”*”字符 , 后面紧跟模块的名字,然后是一系列的 message, message 的格式如下: MESSAGE_TYPE...(E) 错误。很可能是代码错误。 (F) 致命错误。阻止 Pylint 进一步运行的错误Pylint 的常用命令行参数 -h,--help显示所有帮助信息。...-i , --include-ids=在输出包含 message 的 id, 然后通过 pylint --help-msg=来查看这个错误的详细信息,这样可以具体地定位错误...-r , --reports=默认是 y, 表示 Pylint 的输出除了包含源代码分析部分,也包含报告部分。...[txt|html] 命名的文件,如果有 report 的话,输出到名为 pylint_global.[txt|html] 的文件。默认是输出到屏幕上不输出到文件里。

1K20

Visual Studio Code 1.73正式发布

Merge Editor 在这个版本,继续打磨 merge editor(合并编辑器),这次更新包含了一些错误修复和一些新功能: 接受双方追加冲突 在这个版本,Accept Incoming(接受输入...当冲突可以在字符层面没有冲突的情况下解决,会显示 Accept Combination(接受组合)这个选项,可以用来自动解决冲突。 在下面的示例,两段代码都被导入到同一个导入语句中。...Pylance 默认关闭自动导入功能 自从自动导入首次在 Pylance 实现以来,微软已经收到了很多反馈,例如,当建议被意外接受,自动添加到文件导入十分令人困惑。...从这个版本开始,在使用 Pylance ,软件将不再被默认自动导入。...Pylint 和 Flake8 扩展 在之前的版本,发布了新的 Pylint 和 Flake8 扩展,它们通过语言服务器协议 (LSP) 与 Python 扩展协同工作,提供提示。

1.2K30

Python 自学步骤(文中有福利)

Python代码 5 熟悉VSCode开发环境与Python插件安装 (16:376 流程控制语句之条件控制一 7 流程控制语句之条件控制 二 8 常量与Pylint的规范 9 流程控制语句之条件控制...三 snippet、嵌套分支、代码块的概念 10 流程控制语句之条件控制 四 elif的优点 第6章 模块、函数与变量作用域 1 while循环与使用场景 2 for与for-else循环 3 for...与 range 4 新篇章导言 5 Python工程的组织结构:模块儿、类 6 Python模块的名字 7 import导入模块 8 from import 导入变量 9 __init__.py...的用法 10 模块的几个常见错误_ 11 模块内置变量 12 入口文件和普通模块内置变量的区别 13 __name__的经典应用 14 相对导入和绝对导入 第7章 Python函数 1 认识函数...4 构造函数 5 区别模块变量与类的变量 6 类变量与实例变量 7 类与对象的变量查找顺序 8 self与实例方法 9 在实例方法访问实例变量与类变量 10 类方法 11 静态方法 12 成员可见性

1.2K40

3大利器推荐,帮你写出规范漂亮的python代码

2 自动检测工具Pylint Pylint 是一个检查违反 PEP8 规范和常见错误的库,它会自动查找不符合代码风格标准和有潜在问题的代码,并在控制台输出代码违反规范和出现问题的相关信息。...pylint的使用也非常简单,最基本的用法直接在控制台输入 pylint 路径/模块名 即可对相关模块的代码风格规范 进行检查,检查结果会在控制台输出。...C——违反代码风格标准; R——代码结构较差; W——关于细节的警告; E——代码存在错误; F——导致Pylint无法继续运行的错误。...1).安装与使用 与pylint类似,直接pip install black即可完成该模块的安装,不过black依赖于Python 3.6+,但它仍然可以格式化Python2的代码。...= 两端的空格、注释的格式、 制表符等进行了替换和修改,我们使用pylint来进行验证,执行 pylint 模块名称 命令,得到如下结果: image.png 可以看到,相对于最初的文件,评分从0分提高到

1K30
领券