python模块与包
① python 如何处理模块和包有相同名字的情况
在 Python 中,如果尝试导入同名的模块和包时,包会被导入。这种情况下,如果想要导入模块,恐怕要用一些 ‘hack' 的方法,上面提到的 stackoverflow 帖下有一些示例可以参考。
② python 中的包、模块、类具体、方法名。package,,,,,
说模块太遥远了。
来个简单的。
新建一个python文件func.py
内容如下
def myprint(x):
print x
再新建一个python文件1.py
内容如下:
import func
func.myprint("ok")
1.py这个文件 import 了func这个文件,然后通过func.myprint调用了func中的函数
③ python3,包和模块的关系,包到底是个啥,最好截个图给我看看
那么箭头指向的http文件夹就是一个包。
但是注意。包里面回必须包含一个__init__.py (这个模块里面可答以不写内容)
如果没有这个文件,那么就不是包了。。包下面放的client.py就是模块
④ Python如何使用pip安装模块和包
使用pip安装python模块和包
方式一:1.进入命令行2.敲入pip命令:pip install 包名 。由于python官网下载速度太慢,可以通过添加参数从清华镜像下载包(-ihttps://pypi.tuna.tsinghua.e.cn/simple/)。
方式二:1.进入清华镜像:https://pypi.tuna.tsinghua.e.cn/simple/2. ctrl+F 找到需要安装的包,并下载。
相关推荐:《Python视频教程》
3. 在下载路径下打开命令行。
4. pip install 刚下载的文件名。
pip list:查看当前安装了哪些包pip -V:查看当前pip版本号
相关推荐:
盘点Python常用的模块和包
⑤ 有哪位大神指导下,Python中文件、模块与包三者之间有什么区别呀麻烦解释的详细点哈,谢谢啦。。。。
Python在处理功能复用和功能颗粒度划分时采用了类、模块、包的结构。这种处理跟C++中的类和名字空间类似,但更接近于java所采用的概念。
类
类的概念在许多语言中出现,很容易理解。它将数据和操作进行封装,以便将来的复用。
模块
模块,在Python可理解为对应于一个文件。在创建了一个脚本文件后,定义了某些函数和变量。你在其他需要这些功能的文件中,导入这模块,就可重用这些函数和变量。一般用mole_name.fun_name,和mole_name.var_name进行使用。这样的语义用法使模块看起来很像类或者名字空间,可将mole_name理解为名字限定符。模块名就是文件名去掉.py后缀。下面演示了一个简单的例子:
#moel1.py
def say(word):
print word
#caller.py
import mole1
print __name__
print mole1.__name__
mole1.say('hello')
$ python caller.py
__main__
mole1
hello
例子中演示了从文件中调用模块的方法。这里还展示了一个有趣的模块属性__name__,它的值由Python解释器设定。如果脚本文件是作为主程序调用,其值就设为__main__,如果是作为模块被其他文件导入,它的值就是其文件名。这个属性非常有用,常可用来进行模块内置测试使用,你会经常在一些地方看到类似于下面的写法,这些语句只在作为主程序调用时才被执行。
if __name__ == '__main__':
app = wxapp(0)
app.MainLoop()
模块搜索路径
上面的例子中,当mole1被导入后,python解释器就在当前目录下寻找mole1.py的文件,然后再从环境变量PYTHONPATH寻找,如果这环境变量没有设定,也不要紧,解释器还会在安装预先设定的的一些目录寻找。这就是在导入下面这些标准模块,一切美好事情能发生的原因。
import os
import sys
import threading
...
这些搜索目录可在运行时动态改变,比如将mole1.py不放在当前目录,而放在一个冷僻的角落里。这里你就需要通过某种途径,如sys.path,来告知Python了。sys.path返回的是模块搜索列表,通过前后的输出对比和代码,应能理悟到如何增加新路径的方法了吧。非常简单,就是使用list的append()或insert()增加新的目录。
#mole2.py
import sys
import os
print sys.path
workpath = os.path.dirname(os.path.abspath(sys.argv[0]))
sys.path.insert(0, os.path.join(workpath, 'moles'))
print sys.path
$ python mole2.py
['e:\Project\Python', 'C:\WINDOWS\system32\python25.zip', ...]
['e:\Project\Python\moles', 'e:\Project\Python', 'C:\WINDOWS\system32\python25.zip', ...]
其他的要点
模块能像包含函数定义一样,可包含一些可执行语句。这些可执行语句通常用来进行模块的初始化工作。这些语句只在模块第一次被导入时被执行。这非常重要,有些人以为这些语句会多次导入多次执行,其实不然。
模块在被导入执行时,python解释器为加快程序的启动速度,会在与模块文件同一目录下生成.pyc文件。我们知道python是解释性的脚本语言,而.pyc是经过编译后的字节码,这一工作会自动完成,而无需程序员手动执行。
包
在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,这里就需要运用包的概念了。包对应于文件夹,使用包的方式跟模块也类似,唯一需要注意的是,当文件夹当作包使用时,文件夹需要包含__init__.py文件,主要是为了避免将文件夹名当作普通的字符串。__init__.py的内容可以为空,一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from package-name import *这语句使用的,全部导出定义过的模块。
⑥ Mac下Python怎么安装模块和包
Python版本确认
在应用界面找到终端
打开终端
输入Python呼出Python交互界面,建议从官网下载更新到Python2最新版本(过早的Python默认没有pip)END
用pip安装模块和包
打开终端
输入pip install + 包名 就可以安装了。安装是否成功一方面跟网速有关,另一方面部分包不支持直接安装,需要下载安装文件进行安装。
安装完成后,可使用pip list命令查看已安装的包及其版本pip版本升级
使用pip install -U pip命令进行升级
⑦ python 模块与包不能像java一样方便运用吗
JAVA 要编译后才能运行,Python 直接解释运行。 JAVA 引入包后,调用包的方式比 Python 要简洁些,而 Python 直接 import 包则是显式的,不会出现同名模块/类冲突的问题,如果使用“from mole import function”的话,在使用的时候也很简洁却要求必须有针对性地引用函数。 JAVA 里的块用大括号对包括,Python 以冒号 + 四个空格缩进表示。 JAVA 的类型要声明,Python 的类型不需要。 JAVA 基本上是类/结构操作,也就是面向对象处理,Python 可以以独立的函数模块来处理逻辑而不需要放到类中。 JAVA 每行语句以分号结束,Python 可以不写分号。 JAVA 中的字符串以双引号括起来,Python 中单引号或双引号都可以(与 JavaScript 一样)。
⑧ python中的模块、库、包有什么区别
模块,库,包主要区别在于他们的定义与所指范围不同。
python模块,回包含并且有组织的代码片答段为模块,sample.py 其中文件名smaple为模块名字。
而包是一个有层次的文件目录结构,它定义了由无数个模块或无数个子包组成的python应用程序执行环境。
库的概念是具有相关功能模块的集合。这也是正是Python的一大特色之一,即具有强大的标准库,还有第三方库以及自定义模块。
⑨ Python中的模块和包的定义
标准库可以帮助程抄序员快速完成一些功能,不必重复开发已有的代码,提高效率和代码质量。
Python安装以后,自带的Python
Manuals有对标准库The
Python
Standard
Library的详细介绍
。
⑩ python中的模块,库,包有什么区别
1.python模块是:
python模块:包含并且有组织的代码片段为模块。
表现形式为:写的代码保存为文件。这个文件就是一个模块。sample.py 其中文件名smaple为模块名字。
关系图:
3.库(library)
库的概念是具有相关功能模块的集合。这也是Python的一大特色之一,即具有强大的标准库、第三方库以及自定义模块。