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模块导入总结的更多相关文章

  1. 一文解决python模块导入

    python 模块导入 原理 查找是按照 sys.path 中的路径挨个扫描.若都不存在则提示error. sys.path路径第一个是当前运行脚本所在的目录,其后是PYTHONPATH(一般若步专门 ...

  2. python模块导入细节

    python模块导入细节 官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码文件按照功能可以分为两种类型: ...

  3. 【转】python模块导入细节

    [转]python模块导入细节 python模块导入细节 官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码 ...

  4. 详解Python模块导入方法

    python常被昵称为胶水语言,它能很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松联结在一起.python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的 ...

  5. python 模块导入import和import from区别

    模块就是一个.py文件,在名字空间下导入模块导入import和import from,那么python 模块导入import和import from区别是什么呢 1,import 导入模块 impor ...

  6. python 模块导入

    1. 模块导入: 要使用一个模块,我们必须首先导入该模块.Python使用import语句导入一个模块.例如,导入系统自带的模块 math: import math 你可以认为math就是一个指向已导 ...

  7. python模块导入

    官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码文件按照功能可以分为两种类型: 用于执行的可执行程序文件 ...

  8. python 模块导入详解

    本文不讨论 Python 的导入机制(底层实现细节),仅讨论模块与包,以及导入语句相关的概念.通常,导入模块都是使用如下语句: import ... import ... as ... from .. ...

  9. python模块导入-软件开发目录规范-01

    模块 模块的基本概念 模块: # 一系列功能的结合体 模块的三种来源 """ 模块的三种来源 1.python解释器内置的模块(os.sys....) 2.第三方的别人写 ...

随机推荐

  1. C++入门经典-例2.2-使用格式输出函数printf

    1:使用printf函数对不同类型变量进行输出,%符号,代表输出类型,\n代表换行,代码如下: // 2.2.cpp : 定义控制台应用程序的入口点. // #include "stdafx ...

  2. Jmeter性能测试环境搭建(Windows下)

    最近刚开始接触Jmeter性能测试,现总结环境搭建如下: 一.windows安装JDK步骤与环境变量配置: 1.先将下载的JDK安装到其默认目录:C:\Program Files\Java\jdk1. ...

  3. SELECT list is not in GROUP BY clause and contains nonaggregated

    安装了mysql5.7,用group by 查询时抛出如下异常 SQLSTATE[42000]: Syntax error or access violation: 1055 Expression # ...

  4. linux sig Segmentation fault error

    当你发现自己的程序挂了,发现这样的一个报错, 不要慌张,它还是带有一点有用信息的.ps: 如果程序挂了,没有捕抓到这个提示,看一下/var/log/messages对应时间段有没有如下消息.memca ...

  5. 如何在DELL R420上部署EXSI虚拟化(服务器上的安装)

    <VMware ESXi>是一款虚拟化软件.软件支持windows平台客户端界面管理,客户端界面与正常使用的虚拟机WMware Workstation界面功能类似VMware ESXI 服 ...

  6. P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…

    P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…   大写祖母转数字  -64   发现dalao   #include<bits/stdc++.h> usi ...

  7. 说说 Activity、Intent、Service 是什么关系

    他们都是 Android 开发中使用频率最高的类.其中 Activity 和 Service 都是 Android 四大组件之一.他俩都是Context 类的子类 ContextWrapper 的子类 ...

  8. pureftp安装部署

    ftp:文件传输pure-ftpd:ftp软件作用:通过映射登录传送和接收文件.1.先下载pure-ftpd软件,最好指定一个下载软件目录如:/usr/local/src wget https://d ...

  9. 阶段3 2.Spring_06.Spring的新注解_7 spring整合junit问题分析

    测试类重复代码的问题 这是之前的方式 运行findAll的方法,没有问题 测试人员不需要关心上面的方法,.应该关心的各个方法是否能够正常的运行 对于一个测试工程师,只要写完变量就可以测试了. 可以使用 ...

  10. easyui tree checkbox 单选控制

    参考文档:中文网:http://www.jeasyui.net/plugins/185.html easyui-tree的checkbox默认是多选的, 如何控制只能单选一个子节点,看代码: $('# ...