基础

调用模块常见的两种方法

  • import [模块名]
  • from [模块名] import [属性/方法]

进阶用法

调用父级目录下模块

背景介绍

目录new2(b2.py)调用上级目录new1(b1.py)

b2.py

  • 方法1
from b1 import h1

a = h1()
print(a)
  • 方法2
import b1

a = b1.h1()
print(a)

调用同级目录下模块

背景介绍

目录new0(b0.py)调用同级目录new3(b3.py)

  • 方法1
import sys
sys.path.append("..")
from new3.b3 import * a = h3()
print(a)
  • 方法2
import sys
sys.path.append("..")
import new3.b3 a = new3.b3.h3()
print(a)

调用指定目录下的模块

背景介绍

目录new0(b0.py)调用绝对路径下 F:\Program的b2.py

import sys
import os
sys.path.append(os.path.abspath(r'F:\Program'))
from b2 import * a = h1()
print(a)

拓展

import导入路径

import导入路径的过程

本质上就是寻找一个模块的路径

  1. 在当前目录下寻找
  2. 如果不在当前目录下,Python则会搜索在shell变量PYTHONPATH下的每个目录
  3. 如果都找不到,Python会查看默认路径,UNIX下,默认路径一般为/usr/local/lib/python/
  4. 如果还找不到,模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录

先后顺序也决定程序的结果

如果在当前目录下就有,但是你却放在了sys.path的最后面,程序就会报错,就是因为顺序原因

环境变量

PYTHONPATH

PYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找。

  • 打印PYTHONPATH
import os
import pprint
pprint.pprint(sys.path)

  • 设置PYTHONPATH

    方法一:命令窗口添加路径(临时添加)

    export PYTHONPATH=$PYTHONPATH:/home/ershisui

    注意:此方法只在当前命令窗口生效!

    方法二:在python 中添加(永久添加)
  import sys
sys.path.append('/home/ershisui/')

参考:

https://www.cnblogs.com/zhuxiaoxi/p/10003609.html

https://www.cnblogs.com/lifeofershisui/p/8135702.html

python - 模块调用的更多相关文章

  1. Python模块调用方式详解

    Python模块调用方式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其 ...

  2. python 模块调用的几种方式

    在python里面又很多模块,或者引用第三方模块,python 模块调用的几种方式,下面详细解说 1,import 模块名 2,from 模块 import  模块里面的小功能 3,from  模块 ...

  3. Python 模块调用的变量与路径

    自己编写的python代码经常需要分模块文件以及包,梳理一下调用顺序.执行顺序.工作路径.函数与变量等 工作路径 首先是工作路径,当模块代码放在统一的包内的时候,其路径和外层的包路径不同,当作为主调用 ...

  4. python模块调用

    1.某个模块1被调用到另一个模块2的时候,当不想模块1中的某些代码在模块2中执行时,可以在模块一种添加如下代码: if    __name__  ==     "__main__" ...

  5. 4.1 python中调用rust程序

    概述 使用rust-cpython将rust程序做为python模块调用: 通常为了提高python的性能: 参考 https://github.com/dgrunwald/rust-cpython ...

  6. 编程:C#调用Python模块

    当下,C#与Python都是比较热门的计算机编程语言,他们各有优缺点,如果能让他们互相配合工作,那是多么美好的事情,今天我来讲解一下如何利用C#来调用Python. 如果让C#支持调用Python模块 ...

  7. Python多层目录模块调用

    一. 引用模块在 父+级目录中: 1. 将导入模块所在目录(../model/模块)添加到系统环境变量path下,可添加多个 import syssys.path.append("../mo ...

  8. python模块:调用系统命令模块subprocess等

    http://blog.csdn.net/pipisorry/article/details/46972171 Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻 ...

  9. 嵌入Python系列 | 调用Python模块中无参数函数

    开发环境 Python版本:3.6.4 (32-bit) 编辑器:Visual Studio Code C++环境:Visual Studio 2013 需求说明 在用VS2013编写的Win32程序 ...

随机推荐

  1. Flutter 容器(4) - Container

    Container 类似于HTML中的div标签 import 'package:flutter/material.dart'; class AuthList extends StatelessWid ...

  2. MST(最小生成树)

    1.prim算法分析 prim算法是用来构建MST(最小生成树)的一种基于贪心策略的算法.prim算法通过维护lowcost数组和closest数组记录每次查询的最小权值边结点. 首先,看一个示例来理 ...

  3. Markdown实验样例

    一级标题 二级标题 三级标题 重新开始一个段落 这是新的段落 斜体文本 粗体文本 粗斜体文本 下面是分隔线 删除线 下划线 脚注[1] 无序列表 第一项 嵌套元素1 嵌套元素2 第二项 嵌套元素1 嵌 ...

  4. java中assert的使用

    https://blog.csdn.net/AbnerChai/article/details/87379?depth_1-utm_source=distribute.pc_relevant.none ...

  5. JavaScript学习系列博客_18_JavaScript中的匿名函数

    匿名函数 - 用函数声明的方式创建一个函数时,不加函数名称. function sum(){ console.log("我是函数sum")} - 不加名称,这样写浏览器是会报错的. ...

  6. SpringBoot--- Shiro(拦截,认证)、Thymeleaf(模板引擎)

    SpringBoot--- Shiro(拦截,认证).Thymeleaf(模板引擎) 环境 IDEA :2020.1 SpringBoot: 2.3.3 Java : 8 版本依赖: ​ shiro- ...

  7. SpringBoot整合Actuator进行健康监控

    一.Actuator介绍 SpringBoot自带监控功能Actuator,通过 restful api 请求来监管.审计.收集应用的运行情况,可以帮助实现对程序内部运行情况监控,比如监控状况.Bea ...

  8. LR与LR?

    目录 逻辑回归与线性回归 逻辑回归 1.建立目标函数 2. 梯度求解 3. 实现 线性回归 1. 建立目标函数 2. 求解 3. 实现 逻辑回归与交叉熵 逻辑回归与线性回归 逻辑回归 线性回归 目标函 ...

  9. 焦大:seo思维进化论(番外)

    http://www.wocaoseo.com/thread-54-1-1.html 我已经在博客说了学seo研究算法是愚蠢的行为,但是很多人仍旧来问se的算法问题,其中最多的就是问TF-IDF算法, ...

  10. 焦大:seo思维光年(下)seo操作如何度量化

    http://www.wocaoseo.com/thread-57-1-1.html 如果不能度量就无法进行改进,所以度量化或数据化是网站分析和网站研究必须进行的一个方面,seo也不能例外.我在上篇文 ...