Python中的import和from import
一、Python路径介绍
在python用import或者from...import来导入相应的模块。
模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我们就可以使用了。
这类似于C语言中的include头文件,Python中我们用import导入我们需要的模块。
二、搜索路径
Python会在以下路径中搜索它想要寻找的模块:
1. 程序所在的文件夹
2. 标准库的安装路径
3. 操作系统环境变量PYTHONPATH所包含的路径
- import sys
- print('================Python import mode==========================');
- print ('The command line arguments are:')
- for i in sys.argv:
- print (i)
- print ('\n The python path',sys.path)
- from sys import argv,path # 导入特定的成员
- print('================python from import===================================')
- print('path:',path) # 因为已经导入path成员,所以此处引用时不需要加sys.path
- 如果你要使用所有sys模块使用的名字,你可以这样:
- from sys import *
- print('path:',path)
三、Python项目结构
所以在Python项目里面的区分,按照如下规定进行:
1.严格区分包和文件夹。包的定义就是包含__init__.py的文件夹。
如果没有__init__.py,那么就是普通的文件夹。
2.导入package。
在python 安装目录的site-package文件夹中新建xxx.pth,内容是需要导入的package所在的文件夹路径。
3.导入模块。
就是一般的模块导入写法,注意只要包路径,不要文件夹路径。

以上面工程为例,
总共有4个包,分别是:package,package1, package2, folder2.(注意,folder1不是package,因为它没有__init__.py)。
这些包所在的文件夹共有两个,test以及test/folder1。 注意,package2所在的文件夹是test,虽然它是包含在folder2里面,但是folder2是一个包,不是一个文件夹。
因此在site-package中新建一个XXX.pth, 里面添加上test以及test/folder1的绝对路径即可。
模块导入比较简单,只要依次填包名就可以了,但注意只要包名
如果需要导入module2,则import folder2.package2.module2
如果需要导入module1,则import package1.module1 注意,路径中没有folder1,因为folder1是文件夹,不是包。
Python中的import和from import的更多相关文章
- Python中的from等价于import的语法
Python中导入module文件有两种方式:import和from.这里并不会列举import和from的具体使用方法,而是比较两者之间的差别. 对于from语句来说,它其实是等价于下面的impor ...
- python中的 json 模块使用
(1)python 中生成 json 字符串: import json data = dict(ret=0, msg="Welcome, Login success!") json ...
- Python中变量的命名
变量的命名 目标 标识符和关键字 变量的命名规则 0.1 标识符和关键字 1.1 标识符 标示符就是程序员定义的 变量名.函数名 名字 需要有 见名知义 的效果,见下图: 标示符可以由 字母.下划线 ...
- python中变量命名的基本规则,标识符和关键字
变量的命名 目标 标识符和关键字 变量的命名规则 0.1 标识符和关键字 1.1 标识符 标示符就是程序员定义的 变量名.函数名 名字 需要有 见名知义 的效果,见下图:  标示符可以由 字母.下划 ...
- python中实现mysql连接池
python中实现mysql连接池 import pymysql from DBUtils.PooledDB import PooledDB MYSQL_HOST = 'localhost' USER ...
- 通过编写聊天程序来熟悉python中多线程及socket的用法
1.引言 Python中提供了丰富的开源库,方便开发者快速就搭建好自己所需要的应用程序.本文通过编写基于tcp/ip协议的通信程序来熟悉python中socket以及多线程的使用. 2.python中 ...
- Python中常用模块一
random模块 import random # 应用数学计算 print(random.random()) # 取随机小数 范围是 0-1之间 # 应用抽奖 , 彩票 print(random.ra ...
- js中正则表达式与Python中正则表达式的区别
今天女票让我帮她写一个js中的正则,来提取电话号码,对于正则规则来说,js与python是基本没有区别的,重点的区别是在一些函数与方法中. python中的正则提取: import re str = ...
- 谈谈Python中对象拷贝
你想复制一个对象?因为在Python中,无论你把对象做为参数传递,做为函数返回值,都是引用传递的. 何谓引用传递,我们来看一个C++交换两个数的函数: void swap(int &a, in ...
- python中的模块以及包导入
python中的导入关键字:import 以及from import 1.import import一般用于导入包以及模块. 不过有个小问题: (1)当导入的是模块的时候是可以直接可以使用模块内的函 ...
随机推荐
- 行为型设计模式之访问者模式(Visitor)
结构 意图 表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作. 适用性 一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对象实施一些依 ...
- table 实现 九宫格布局
九宫格布局 最近遇到一个题目,是实现一个九宫格布局的.实现的效果大概是下图这种这样子的: (鼠标悬浮的时候,九宫格的边框颜色是改变的.) 首先想到的是直接使用<table>进行布局,原因很 ...
- win8下notepad++无法设置文件关联
- Xcode_Build_Setting_Reference
http://download.csdn.net/detail/xinlingdedahai/8350631 https://developer.apple.com/library/ios/docum ...
- UVA 763 Fibinary Numbers
题意讲某个二进制按照规则每一位对应斐波那契数生成新的数字,然后2个数字求和.再求由该规则生成的二进制串.并且要求尽量用更大项的fib数(题目提示不能由连续的1就是2个连续的1(11)不如100更优) ...
- C++ 播放音频流(PCM裸流)--改善
直接上代码,如果有需要可以直接建一个win32控制台程序然后将代码拷过去改个文件名就可以用了(注意将声道和频率与你自己的文件对应).当然我自己也用VS2008写了个例子上传了,如果有需要下载地址如下: ...
- 免格式化制作老毛桃PE工具
由于移动硬盘数据很多,格式化制作太麻烦 先去老毛桃官网下载PE,生成ISO文件 将移动硬盘单独划分一个2G的空间用于装老毛桃,并格式化为FAT32格式,这样就避免全盘格式化了,只需要格式化这个分区 ...
- hdu 5109(构造数+对取模的理解程度)
Alexandra and A*B Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- 大牛教你如何循序渐进,有效的学习JavaScript?
首先要说明的是,咱现在不是高手,最多还是一个半桶水,算是入了JS的门.谈不上经验,都是一些教训. 这个时候有人要说,“靠,你丫半桶水,凭啥教我们”.您先别急着骂,先听我说! 你叫一个大学生去教小学数学 ...
- [thinkphp] 如何解析ajaxReturn返回的json字符串
success: function(data){ var dataObj=eval("("+data+")");//转换为json对象 alert(dataOb ...