python模块导入总结
python模块导入总结
模块导入方式
定义test.py模块
def print_func():
print("hello")
import 语句
导入模块语法
import module1[, module2[,... moduleN]]
引用print_func()函数
模块名.函数名
#!/usr/bin/python
# -*- coding: UTF-8 -*- # 导入模块
import test # 现在可以调用模块里包含的函数了
test.print_func()
from…import 语句
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。语法如下:
from modname import name1[, name2[, ... nameN]]
例如,要导入模块 fib 的 fibonacci 函数,使用如下语句:
from fib import fibonacci
这个声明不会把整个 fib 模块导入到当前的命名空间中,它只会将 fib 里的 fibonacci 单个引入到执行这个声明的模块的全局符号表。
from…import* 语句
把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:
from modname import *
这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。
例如我们想一次性引入 math 模块中所有的东西,语句如下:
from math import *
python绝对路径和相对路径
转自https://blog.csdn.net/databatman/article/details/49453953
下面的路径介绍针对windows,其他平台的暂时不是很了解。 在编写的py文件中打开文件的时候经常见到下面其中路径的表达方式: open('aaa.txt')
open('/data/bbb.txt')
open('D:\\user\\ccc.txt')
这三种表达式里面,前两个都是相对路径,第三个则是绝对路径。绝对路径比较好理解,就是最完整的路径,相对路径的相对则是不完整路径,这个相对指的就是相对于当前文件夹路径,其实就是你编写的这个py文件所放的文件夹路径!也就是说你写的相对路径必须是当前文件夹A里的文件a或者A里的文件夹B里的文件才可以open。 假设当前的py文件夹所处的位置是:D:\user\public 那么三行代码打开的文件所属的路径分别是: D:\user\public\aaa.txt D:\user\public\data\bbb.txt D:\user\private\ccc.txt 很好理解就是当要打开py文件所处的文件时只要使用相对路径就行了,而要使用其他文件夹的则需使用绝对路径。 注:我们常用’/‘来表示相对路径,’\‘来表示绝对路径,上面的路径里\\是转义的意思。此外,网页网址和linux、unix系统下一般都用’/‘。 当然我们也可以获得当前文件夹的绝对路径,如下: import os
path1=os.path.abspath('.') #表示当前所处的文件夹的绝对路径
path2=os.path.abspath('..') #表示当前所处的文件夹上一级文件夹的绝对路径
所以我们常设置一个path1的全局变量来表示当前的绝对路径,再加上相对路径来打开需要打开的文件,这么做是为了在不同的平台上不冲突,因为不同平台在相对路径上的表示上存在区别。
PYTHONPATH 变量
作为环境变量,PYTHONPATH 由装在一个列表里的许多目录组成。PYTHONPATH 的语法和 shell 变量 PATH 的一样。
在 Windows 系统,典型的 PYTHONPATH 如下:
set PYTHONPATH=c:\python27\lib;
在 UNIX 系统,典型的 PYTHONPATH 如下:
set PYTHONPATH=/usr/local/lib/python
搜索路径
当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
- 1、当前目录
- 2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
- 3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
python中设置PYTHONPATH 变量
PYTHONPATH是Python中一个重要的环境变量,用于在导入模块的时候搜索路径.可以通过如下方式访问:
import sys print(sys.path)
['C:\\Pycham', 'C:\\Pycham', 'C:\\Users\\Administrator\\my_site', 'C:\\Users\\Administrator\\mysite', 'C:\\Users\\Administrator\\test_login', 'C:\\Pycham\\anaconda\\Scripts\\python37.zip', 'C:\\ProgramData\\Anaconda3\\DLLs', 'C:\\ProgramData\\Anaconda3\\lib', 'C:\\ProgramData\\Anaconda3', 'C:\\Pycham\\anaconda', 'C:\\Pycham\\anaconda\\lib\\site-packages', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin']
路径列表的第一个元素为空字符串,代表的是相对路径下的当前目录.
由于在导入模块的时候,解释器会按照列表的顺序搜索,直到找到第一个模块,所以优先导入的模块为同一目录下的模块.
导入模块时搜索路径的顺序也可以改变.这里分两种情况:
1,通过sys.path.append(),sys.path.insert()等方法来改变,这种方法当重新启动解释器的时候,原来的设置会失效.
import sys
sys.path.append('/home/test/')
2,改变PYTHONPATH,这种设置方法永久有效:
export PYTHONPATH=$PYTHONPATH:/home/test
在这种情况下,可以通过在sys.path列表显示的路径中路径件来实现:文档
python模块导入总结的更多相关文章
- 一文解决python模块导入
python 模块导入 原理 查找是按照 sys.path 中的路径挨个扫描.若都不存在则提示error. sys.path路径第一个是当前运行脚本所在的目录,其后是PYTHONPATH(一般若步专门 ...
- python模块导入细节
python模块导入细节 官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码文件按照功能可以分为两种类型: ...
- 【转】python模块导入细节
[转]python模块导入细节 python模块导入细节 官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码 ...
- 详解Python模块导入方法
python常被昵称为胶水语言,它能很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松联结在一起.python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的 ...
- python 模块导入import和import from区别
模块就是一个.py文件,在名字空间下导入模块导入import和import from,那么python 模块导入import和import from区别是什么呢 1,import 导入模块 impor ...
- python 模块导入
1. 模块导入: 要使用一个模块,我们必须首先导入该模块.Python使用import语句导入一个模块.例如,导入系统自带的模块 math: import math 你可以认为math就是一个指向已导 ...
- python模块导入
官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码文件按照功能可以分为两种类型: 用于执行的可执行程序文件 ...
- python 模块导入详解
本文不讨论 Python 的导入机制(底层实现细节),仅讨论模块与包,以及导入语句相关的概念.通常,导入模块都是使用如下语句: import ... import ... as ... from .. ...
- python模块导入-软件开发目录规范-01
模块 模块的基本概念 模块: # 一系列功能的结合体 模块的三种来源 """ 模块的三种来源 1.python解释器内置的模块(os.sys....) 2.第三方的别人写 ...
随机推荐
- vs2015使用低版本编译的openssl问题
用Vs2005编译的openssl,在vs2015中使用就悲剧了,报如下错误 >libeay32.lib(cryptlib.obj) : error LNK2019: 无法解析的外部符号 __v ...
- oracle存储过程错误跟踪
1.首先创建用于保存错误信息的表 1 2 3 4 5 6 7 8 CREATE TABLE TBL_PROC_ERRMSG ( BIZ_CODE VARCHAR2(50), ERR_LINE ...
- Jenkins发布回滚方案
Jenkins回滚可以通过每次发布从主干打tag,然后发布的时候发tag,比如tag, v1, v2,v3 如果我发布了v3,想要回滚回v2,直接在Jenkins中选择v2的tag地址重新构建就可以回 ...
- Python 基础语法_Python脚本文件结构
目录 目录 前言 软件环境 Python Script文件结构 导入模块的流程 Python的包package 最后 前言 Python基础语法这一章,主要记录了Python的文件结构.逻辑运算符.算 ...
- idea 导入 open项目
导入 import Project 选择你的项目目录 (位置可以直接是svn下下来的项目目录 不用新建空项目或者目录) 如果有提示直接yes 没有拉到 一路next 如果提示 覆盖就ok (一路 ...
- jdbc 对sqlite的基本操作
1.向数据库中创建表 public void addTable( String dbpath) { //创建表单的sql语句 String createtablesql= " CREATE ...
- iOS多选实现注意点
下面对APP的多选选择列表实现进行总结,为了在以后的每个项目的多选实现,测试总是提一样的bug总结的. 具体的实现代码就不复制粘贴了,不过在多选问题上遇到问题的可以我们一起讨论讨论的哈... 可能总结 ...
- cento7忘记root密码怎么办
1.首先开启系统,一直按 e 键 进入编辑选项 2.光标下移,在UTF-8行这一段修改两处,首相找到ro改为rw,即只读改为可读写权限:然后在这段的尾部加入 init=/bin/sh 3.此时按住Ct ...
- springmvc请求参数获取(自动绑定)的几种方法
1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @pa ...
- 【Qt开发】qt中涉及到空格包含路径的解决办法
qt中涉及到空格路径,qmake是无法正确编译的. 需要在空格路径前面加上$$quote INCLUDEPATH += $$quote(C:/Program Files/MySQL/MySQL Ser ...