标签分类
技术文章
当前位置:主页 > 计算机编程 > python > 浅谈python import引入不同路径下的模块

python import引入不同路径下的模块用法

  • 发布时间:
  • 作者:码农之家原创
  • 点击:50

浅谈python import引入不同路径下的模块

这篇文章主要知识点是关于python,import,模块,浅谈python import引入不同路径下的模块,python中import是什么 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python程序设计与算法基础教程
  • 类型:Python编程大小:107.6 MB格式:PDF出版:清华大学出版社作者:江红、余青松
立即下载

更多相关的学习资源可以参阅 程序设计电子书Python电子书、等栏目。

python 包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。

下面将具体介绍几种常用情况:

(1)主程序与模块程序在同一目录下:

如下面程序结构:

`-- src
    |-- mod1.py
    `-- test1.py

若在程序test1.py中导入模块mod1, 则直接使用 import  mod1或from mod1 import *;

(2)主程序所在目录是模块所在目录的父(或祖辈)目录

如下面程序结构:

`-- src
    |-- mod1.py
    |-- mod2
    |   `-- mod2.py
    `-- test1.py

若在程序test1.py中导入模块mod2, 需要在mod2文件夹中建立空文件__init__.py文件(也可以在该文件中自定义输出模块接口); 然后使用 from mod2.mod2 import * 或import mod2.mod2.

(3)主程序导入上层目录中模块或其他目录(平级)下的模块

如下面程序结构:

`-- src
    |-- mod1.py 
    |-- mod2
    |   `-- mod2.py
    |-- sub
    |   `-- test2.py
    `-- test1.py

若在程序test2.py中导入模块mod1和mod2。首先需要在mod2下建立__init__.py文件(同(2)),src下不必建立该文件。然后调用方式如下:

下面程序执行方式均在程序文件所在目录下执行,如test2.py是在cd sub;之后执行python test2.py

而test1.py是在cd src;之后执行python test1.py; 不保证在src目录下执行python sub/test2.py成功。

   import sys
   sys.path.append("..")
   import mod1
   import mod2.mod2

 (4)从(3)可以看出,导入模块关键是能够根据sys.path环境变量的值,找到具体模块的路径。

这里仅介绍上面三种简单情况。

以上这篇浅谈python import引入不同路径下的模块就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

python中import是什么

python中import是什么

一、module

通常模块为一个文件,直接使用import来导入就好了。可以作为module的文件类型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。

二、package

通常包总是一个目录,可以使用import导入包,或者from + import来导入包中的部分模块。包目录下为首的一个文件便是 __init__.py。然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。

模块

可以使用import语句将一个源代码文件作为模块导入.例如:

# file : spam.py
a = 37                    # 一个变量
def foo:                  # 一个函数
    print "I'm foo"
class bar:                # 一个类
    def grok(self):
        print "I'm bar.grok"
b = bar()                 # 创建一个实例

使用import spam 语句就可以将这个文件作为模块导入。系统在导入模块时,要做以下三件事:
1.为源代码文件中定义的对象创建一个名字空间,通过这个名字空间可以访问到模块中定义的函数及变量。

2.在新创建的名字空间里执行源代码文件.

3.创建一个名为源代码文件的对象,该对象引用模块的名字空间,这样就可以通过这个对象访问模块中的函数及变量,如:

 import spam           # 导入并运行模块 spam
 print spam.a          # 访问模块 spam 的属性
 spam.foo()
 c = spam.bar()
 ...

用逗号分割模块名称就可以同时导入多个模块:
import socket, os, regex模块导入时可以使用 as 关键字来改变模块的引用对象名字:

import os as system
import socket as net, thread as threads
system.chdir("..")
net.gethostname()

使用from语句可以将模块中的对象直接导入到当前的名字空间. from语句不创建一个到模块名字空间的引用对象,而是把被导入模块的一个或多个对象直接放入当前的名字空间:

from socket import gethostname
                               # 将gethostname放如当前名字空间
print gethostname()            # 直接调用
socket.gethostname()           # 引发异常NameError: socket

from语句支持逗号分割的对象,也可以使用星号(*)代表模块中除下划线开头的所有对象:

from socket import gethostname, socket
from socket import *   # 载入所有对象到当前名字空间

以上就是python中import是什么的详细内容,更多请关注码农之家其它相关文章!

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到spring+springmvc+mybatis整合注、 儿童python编程入门书籍推、 vue项目中使用md5加密以及、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:python fabric实现远程部署实例详解

下一篇:python中urlparse模块用法实例介绍

展开 +

收起 -

学习笔记
网友NO.382156

Python Day05 python 环境变量和import模块导入

1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹;用来存放模块文件 2.导入模块 import 模块名 form 模块名 import * from 模块名 import 模块名 as 新名称 3. 导入模块本质 import 模块名 ===》 将模块中所有的数据赋值给模块名,调用时需要模块名.方法名() from 模块名 import 方法名 ==》将该方法单独放到当前文件运行一遍,调用时只需要方法名()即可运行 导入一个包 就是执行包下的__init__.py文件 路径搜索 import sys,os os.path.abspath(__file__) #获取当前文件的全名 os.path.dirname() #获取当前对象的父级目录 sys.path.insert()#将当前对象的路径添加到首位 sys.path.append() # 将当前环境变量添加到环境变量的末尾 以上就是Python Day05 python 环境变量和import模块导入的详细内容,更多请关注码农之家其它相关文章! ……

网友NO.153475

python的import怎么用

在学习Python的过程中,import是较早接触的一个关键字,Python有很多的内置库,使用import导入后即可使用,或者通过pip安装后import使用,import还为我们组织项目结构提供了可能,在开发大型系统时,整个项目有很多的文件夹和文件,都是通过import来进行连接的,所以搞清楚import的工作机制很有必要。 一、import的基本用法 1.导入包名 import os 2.从包中导入函数 from math import pow 3.导入包并赋予别名 import math as m 4.从包中导入常量并赋予别名 from math import pi as p 5.导入包中所有内容 from math import * 相关推荐:《Python视频教程》 二、Python组织代码的方式 1.一个文件中的元素 如果整个程序只有一个文件,这个文件中就有变量、函数、类这些元素可供操作。 2.模块(module) 简单来说模块就是一个.py文件,例如:在同一个路径下有a.py和b.py两个文件,那么在a.py中就可以import b,然后通过b.xxx就可以使用b.py中的变量、函数、类。 3.包(package) 简单理解包就是包含一个__init__.py的文件夹,例如:在同一个路径下有一个a.py文件和一个b文件夹,在b文件夹中有一个__init__.py文件,在a中import b就是导入了b这个包,实际上就是__init__.py这个文件。 4.__all__ 在包的__init__.py中定义的__all__变量,这样就可以通过导入包名来调用包内各文件中的元素,例如例如:在同……

网友NO.852069

详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决

python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'的解决方法: 1.原因是官网的是python2语法写的,看官手动把官网的HTMLTestRunner.py改成python3的语法: 参考:http://bbs.chinaunix.net/thread-4154743-1-1.html 下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 修改后下载地址:HTMLTestRunner_jb51.rar (懒人直接下载吧) 2.修改汇总: 第94行,将import StringIO修改成import io 第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO() 第642行,将if not rmap.has_key(cls):修改成if not cls in rmap: 第766行,将uo = o.decode('latin-1')修改成uo = e 第775行,将ue = e.decode('latin-1')修改成ue = e 第631行,将print sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)) 在Python3.4下使用HTMLTestRunner,开始时,引入HTMLTestRunner模块报错。 在HTMLTestRunner的94行中,是使用的StringIO,但是Python3中,已经没有StringIO了。取而代之的是io.StringIO。所以将此行修改成import io 在HTMLTestRunner的539行中,self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO() 修改以后,成功引入模块了 执行脚本代码: # -*- coding: utf-8 -*-#引入webdriver和unittest所需要的包from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.……

网友NO.738525

python中import reload __import__的区别详解

import 作用:导入/引入一个python标准模块,其中包括.py文件、带有__init__.py文件的目录(自定义模块)。 import module_name[,module1,...] from module import *|child[,child1,...] 注意:多次重复使用import语句时,不会重新加载被指定的模块,只是把对该模块的内存地址给引用到本地变量环境。 实例: pythontab.py #!/usr/bin/env python #encoding: utf-8 import os print 'in pythontab',id(os) test.py #!/usr/bin/env python #encoding: utf-8 import pythontab #第一次会打印pythontab里面的语句 import os #再次导入os后,其内存地址和pythontab里面的是一样的,因此这里只是对os的本地引用 print 'in c',id(os) import pythontab #第二次不会打印pythontab里面的语句,因为没有重新加载 reload 作用:对已经加载的模块进行重新加载,一般用于原模块有变化等特殊情况,reload前该模块必须已经import过。 import osreload(os) 说明: reload会重新加载已加载的模块,但原来已经使用的实例还是会使用旧的模块,而新生产的实例会使用新的模块;reload后还是用原来的内存地址;不能支持from。。import。。格式的模块进行重新加载。 实例: pythontab.py #!/usr/bin/env python #encoding: utf-8 import os print 'in pythontab',id(os) test.py #!/usr/bin/env python #encoding: utf-8 import pythontab #第一次import会打印pythontab里面的语句 print id(pythontab) #原来pythontab的内存地……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明