返回顶部
首页 > 资讯 > 后端开发 > Python >【Python基础】08、Python模
  • 130
分享到

【Python基础】08、Python模

基础Python 2023-01-31 07:01:34 130人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

一、python模块1、python文件     可以将代码量较大的程序分割成多个有组织的、彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块     模块在物理形势上表现为以.py结尾的代码文件           

一、python模块

1、python文件

     可以将代码量较大的程序分割成多个有组织的、彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块

     模块在物理形势上表现为以.py结尾的代码文件

              一个文件被看作一个独立的模块,一个模块也可以被看作是一个文件

            模块的文件名就是模块的名字加上扩展名(.py)

            每个模块都有自己的名称空间

      python允许导入其它模块以实现代码重用,从而也实现了将独立的代码文件组织成更大的程序系统

            Python中,模块也是对象

            在一个模块的顶层定义的所有变量都在被导入时成为了被导入模块的属性


2、python程序架构 

 一个Python程序通常包含一个顶层程序文件和其它的模块文件(0个,1个或多个)

        顶层文件:包含了程序的主要控制流程    

        模块文件:为顶层文件或其它模块提供各种功能性组件

               模块首次导入(或重载)时,python会立即执行模块文件的顶层程序代码(不在函数内的代码),而位于函数主体内的代码直到函数被调用后才会执行      


3、模块的执行环境

    模块是被导入的,但模块也可以导入和使用其它模块,这些模块可以用python或其它编程语言写成

    模块可内含变量,函数以及类来进行其工作,而函数和类可以包含变量和其它元素


4、导入模块

     在导入模块时只能使用模块名,而不能使用带.py后缀的模块文件名

 import语句:

      导入指定的整个模块,包括生成一个以模块名命名的名称空间

      import module1[,module2...]

               建议一个import语句只导入一个模块

      import module(原模块名) as module_alias(自定义模块名)

from-import语句:

       常用于只导入指定模块的部分属性至当前名称空间

        from module import name1[,name2...]

import和from-import是赋值语句

      import和from是可执行语句,类似于def,因此,他们可以嵌套在if测试中,出现于def中等等

      python执行到这些语句时才会对其解析,这意味着,所有来自模块的属性仅在import执行后才能使用

import和from都是隐性赋值语句

      import将整个模块对象赋值给一个变量名

      from将一个或多个变量名赋值给导入此模块的模块中同名对象

模块就是名称空间

       模块的名称空间可以通过属性__dict__或dir(M)来获取

              模块属性可通过点号(.)运算符获取,格式为M.attr

       模块是一个独立的作用域(本地变量就是全局变量)


5、import的工作机制

import语句导入指定的模块时会执行三个步骤:

找到模块文件

      在指定的路径下搜索模块文件

编译成字节码

      文件导入时就会编译,因此,顶层文件的.pyc字节码文件在内部使用后会被丢弃,只有被导入的文件才会留下.pyc文件

执行模块的代码来创建其所定义的对象

       模块文件中的所有语句会依次执行,从头至尾,而此步骤中任何对变量的赋值运算,都会产生所得到的模块文件的属性

注意:

       模块只在第一次导入时才会执行如上步骤:

              后续的导入操作只不过是提取内存中已加载的模块对象

              reload()可用于重新加载模块


6、模块搜索

python解释器在import模块时必须先找到对应的模块文件:

      程序的主目录

      PYTHONPATH(变量)目录(如果设置了此目录)

      标准链接库目录

      任何.pth文件的内容(如果存在.pth文件)

       这四个组件组合起来即为sys.path所包含的路径,而Python会选择在搜索路径综合中的第一个符合导入文件名的文件

In [12]: import sys

In [13]: sys.path
Out[13]:   
['',                                #依次按以下路径查找
 '/usr/local/python27/bin',
 '/usr/local/python27/lib/python27.zip',
 '/usr/local/python27/lib/python2.7',
 '/usr/local/python27/lib/python2.7/plat-linux2',
 '/usr/local/python27/lib/python2.7/lib-tk',
 '/usr/local/python27/lib/python2.7/lib-old',
 '/usr/local/python27/lib/python2.7/lib-dynload',
 '/usr/local/python27/lib/python2.7/site-packages',   #第三方模块一般安装在这各目录下
 '/usr/local/python27/lib/python2.7/site-packages/IPython/extensions']

示例:创建一个模块并导入

[root@node3 ~]# cd /usr/local/python27/lib/python2.7/site-packages/
[root@Node3 site-packages]# vi mymod.py

[root@Node3 site-packages]# cat mymod.py
#!/usr/local/bin/python2.7
#
x=30
def printInof():
    print x+30
class MyClass():
    data='Hello Myclass'
    def __init__(self,who):
        self.name=who
    def printName(self):
        print self.data,self.name
[root@Node3 site-packages]# chmod +x mymod.py 
[root@Node3 site-packages]# ls
IPython  ipython-1.2.1-py2.7.egg-info  mymod.py  mymod.pyc  README   #.pyc是模块被导入后生成的字节码文件


In [27]: import mymod

In [28]: mymod.
mymod.MyClass    mymod.printInof  mymod.x   

In [45]: mymod.x
Out[45]: 30

In [46]: mymod.printInof
Out[46]: <function mymod.printInof>

In [47]: mymod.printInof()
60

In [48]: Ins1=mymod.MyClass()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-48-997c65c8235f> in <module>()
----> 1 Ins1=mymod.MyClass()

TypeError: __init__() takes exactly 2 arguments (1 given)

In [49]: Ins1=mymod.MyClass('xj')

In [50]: mymod.
mymod.MyClass    mymod.printInof  mymod.x          

In [50]: Ins1.
Ins1.data       Ins1.name       Ins1.printName  

In [50]: Ins1.data
Out[50]: 'Hello Myclass'

In [51]: Ins1.name
Out[51]: 'xj'

In [52]: Ins1.printName
Out[52]: <bound method MyClass.printName of <mymod.MyClass instance at 0x2a01488>>

In [53]: Ins1.printName()
Hello Myclass xj


7、模块的顶层执行及被导入

一个模块文件可以同时支持顶层执行(作为顶层文件)或被导入(作为模块文件)

       每个模块都有个名为__name__的内置属性,python会自动设置该属性

               如果文件是以顶层执行文件执行,在启动时,__name__的值为“__main__”

               如果是被导入,则__name__的值为模块名

可以在模块中检测自己的__name__属性,以之实现在执行时运行指定的代码

In [65]: mymod.__name__
Out[65]: 'mymod'

In [66]: os.__name__
Out[66]: 'os'

常用于模块的自我测试:

#!/usr/local/bin/python2.7
#
def testFunc():
    print "Hello,there..."
if __name__=="__main__":
    testFunc()

将原mymod模块做修改并测试:

[root@Node3 site-packages]# cat mymod.py
#!/usr/local/bin/python2.7
#
x=30
def printInof():
    print x+30
class MyClass():
    data='Hello Myclass'
    def __init__(self,who):
        self.name=who
    def printName(self):
        print self.data,self.name
if __name__ == '__main__':
    printInof()
    ins1=MyClass('jerry')
    print x
    ins1.printName()
[root@Node3 site-packages]# ./mymod.py 
60
30
Hello Myclass jerry


二、python包

1、python包

包用于将一组模块归并到一个目录中,此目录即为包,目录名为包名

      包是一个有层次的文件目录结构,它定义了一个由模块和子包组成的python应用程序执行环境

      基于包,python在执行模块导入时可以指定模块的导入路径

            import dir1.dir2.mod1

要使用如图所示的package1,则py_pkg_mod容器必须要在模块搜索路径中

       import package1.mod1

包导入语句的路径内的每个目录内都必须有__init__.py文件

       __init__.py可包含python代码,但通常为空,仅用于扮演包初始化的挂钩,替目录产生模块命名空间以及使用目录导入时实现from *行为的角色

                                     package1          __init__.py,mod1.py

   py_pkg_mod             package2          __init__.py,mod2.py

                                     package3          __init__.py,mod3.py

示例:创建一个包

[root@Node3 site-packages]# mkdir pkg1
[root@Node3 site-packages]# cd pkg1         
[root@Node3 pkg1]# touch __init__.py
[root@Node3 pkg1]# cp ../mymod.py yanmod.py

       此时pkg1就是一个包名,yanmod是pkg1包内的一个模块        #可以在pkg1包内创建多各模块

导入包里的模块:

In [9]: import yanmod
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-9-a057ff9c6d92> in <module>()
----> 1 import yanmod

ImportError: No module named yanmod

In [10]: import pkg1.yanmod

In [11]: pkg1.yanmod.
pkg1.yanmod.MyClass    pkg1.yanmod.printInof  pkg1.yanmod.x          

In [11]: pkg1.yanmod.x
Out[11]: 33

In [12]: pkg1.yanmod.printInof
Out[12]: <function pkg1.yanmod.printInof>

In [13]: pkg1.yanmod.printInof()
63


2、发布Python模块或程序

pyhon模块、扩展和应用程序可以按一下几种形式进行打包和发布

     压缩文件

            windows的zip文件和类Unix平台的.tar.gz文件

     自动解包或自动安装可执行文件

            windows中的.exe文件

     自包含的,不要求安装的预备运行可执行程序

            windows的.exe文件、unix上带有一个小的脚本前缀的ZIP压缩文件、Mac上的.app文件等

     平台相关的安装程序

            windowns上的.msi文件,linux上常见的.rpm,src.rpm 和.deb文件等

      python eggs 

             较流行的第三方扩展


3、使用distutils模块能够帮助完成模块或程序发布

     “发布”是指一个文件集合,这些文件联合可使用distutils构建,打包和发布模块

        创建好的发布可以用于安装,也可以上传到PyPI上与他人共享

发布模块的步骤:

1)创建发布

       将各代码文件组织到模块容器中

       准备一个README或README.txt文件

       而后在容器中创建setup.py文件

setup.py中的常用参数:

       将各代码文件组织到模块容器中,而后在容器中创建setup.py文件

      参数                          描述

    name                    包的名称(必须)

    version                  版本号(必须)

    authoer                 作者名称

    authoer_email

    maintainer            维护者

    url                         包的主页

    description            包的简短描述

    long_description    包的详细描述

    download_url         包的下载位置

    Classifiers              字符串分类器列表   

    platfORMs              适用的平台列表

    license                    许可证

    py_modules          各模块名称组成的列表,此些模块可能位于包的跟目录下,也可能位于子包目录中

    packages               各自包名称的列表

大体可分为两类:元数据信息和包中的内容列表


2)完成打包:在要发布的容器目录中执行“python setup.py sdist"命令

可以指定格式:--formats=

zip: zip file

gztar:tar.gz file

bztar:tar.bz2 file

ztar:tar.Z file

tar:tar file


python setup.py bdist    (二进制发行版)

为bdist指定格式:--formats=

gztar:tar.gz file

ztar:tar.Z file

tar:tar file

zip:zip file

rpm:RPM Package

pkgtool:Solaris pkgtool

winist:Windows上自解压的zip格式的包

msi:microsoft installer


bdist_dump

bdist_rpm

bdist_winist

bdist_msi

获取帮助的方式:

python setup.py --help

python setup.py --help-commands    所有可以使用的命令,如build,install,sdist,bdist

python setup.py COMMAND --help   获取特定命令的帮助

python setup.py COMMAND 

python setup.py COMMAND --help-formats  获取特定命令支持使用的格式


示例:发布pkg1包

[root@Node3 pkg1]# touch README       #应该在README文件中写明安装方法,注意事项什么的
[root@Node3 pkg1]# vi setup.py
  
[root@Node3 pkg1]# cat setup.py 
from distutils.core import setup
setup(
    name          ='pkg1',
    version       ='0.0.1',
    author        ='anyfish',
    author_email  ='linuxedu@anyfish.cn'
    py_modules    =['yanmod'],
    description   ='A simple module.',
    long_description ='ANYFISH A simple module'
    )
[root@Node3 pkg1]# ls
__init__.py  __init__.pyc  README  setup.py  yanmod.py  yanmod.pyc

[root@Node3 pkg1]# /usr/local/bin/python2.7 setup.py sdist
running sdist
running check
warning: check: missing required meta-data: url

warning: sdist: manifest template 'MANIFEST.in' does not exist (using default file list)

writing manifest file 'MANIFEST'
creating pkg1-0.0.1
making hard links in pkg1-0.0.1...
hard linking README -> pkg1-0.0.1
hard linking setup.py -> pkg1-0.0.1
creating dist
Creating tar arcHive
removing 'pkg1-0.0.1' (and everything under it)
[root@Node3 pkg1]# ls
dist  __init__.py  __init__.pyc  MANIFEST  README  setup.py  yanmod.py
[root@Node3 pkg1]# ls dist
pkg1-0.0.1.tar.gz          #默认的格式,这个模块就打包好了,可以发给别人使用了
  
  
[root@Node3 pkg1]# /usr/local/bin/python2.7 setup.py sdist --help-formats
List of available source distribution formats:
  --formats=bztar  bzip2'ed tar-file
  --formats=gztar  gzip'ed tar-file
  --formats=tar    uncompressed tar file
  --formats=zip    ZIP file
  --formats=ztar   compressed tar file

  
[root@Node3 pkg1]# /usr/local/bin/python2.7 setup.py bdist --help-formats
List of available distribution formats:
  --formats=rpm      RPM distribution
  --formats=gztar    gzip'ed tar file
  --formats=bztar    bzip2'ed tar file
  --formats=ztar     compressed tar file
  --formats=tar      tar file
  --formats=wininst  Windows executable installer
  --formats=zip      ZIP file
  --formats=msi      Microsoft Installer


三、python包管理工具      

        对于每个编程语言来说打包和发布开发包往往非常重要,而作为一个编程者能够快速容易的获得并应用这些由第三方提供的包同样非常重要。类似于java为了便于管理有人开发了Maven等管理工作,而python自然而然也需要便捷的打包和发布工具,以下就介绍python的几个包管理方式。    

       python包管理工具有distutils,setuptools,distribute,easy_install,pip,那麽这几个工具有什么关系呢?

1、distutils 

      Python自带的基本安装工具, 适用于非常简单的应用场景使用

      通过distutils来打包,生成安装包,安装python包等工作,需要编写名为setup.py python脚本文件。如下代码:

from distutils.core import setup

setup(
       name = "testpackage",  
       version = "1.0",  
      description = "Distutils sample distribution testpackage",  
      packages = ['TestPackage']
)

通过上述代码可以进行打包或生成安装包文件,并能进行安装

打包:python setup.py sdist

安装:python setup.py install

       install之前会自动先进行build,默认会在当前工作目录下生成build目录,指定build目录参数:

 --build-base=/path/to/build_dir

第三方模块的默认安装路径通常为:/usr/local/python27/lib/python2.7/site-packages

install 自定义安装路径:

       --user=                            #安装到用户家目录的指定目录下

       --prefix=                          #指定安装到某路径          python库文件

       --exec-prefix=                 #指定用于和python无关由其它语言实现的和平台相已经编译好的的特定文件安装路径

深度定制:

       --install-purelib=/path/to/python_lib    #纯python库文件

       --install-platlib=/path/to/plat_lib          #和python无关由其它语言实现的和平台相已经编译好的的文件

       --install-lib=/path/to/lib                   #不加区分python库文件和其它语言实现的,安装在一起

       --install-scripts=/path/to/bin           #可执行文件安装路径

       --install-data=                                  #数据文件

       --install-headers=                            #c头文件

打包成windows下安装文件exe格式(需在windows环境下):python setup.py bdist_wininst

打包成linux下rpm安装文件格式(需在有rpm环境下):python setup.py bdist_rpm


distutils2 

      setuptools 和 distribute 的诞生是因为 distutils 的不济, 进而导致目前分化的状况。

它将成为 Python 3.3 的标准库 packaging , 并在其它版本中以distutils2 的身份出现; 换句话说, 它和 pip 将联手结束目前混乱的状况。


2、setuptools 

      针对 distutils 做了大量扩展, 尤其是加入了包依赖机制。不支持python3,安装完setuptools后会有easy_install

安装地址:Http://pypi.python.org/pypi/setuptools


1)windows:

32位操作系统直接exe安装文件安装

64位操作系统下载名为ez_setup.py的python脚本文件运行,它会自动安装适合的egg文件并帮您安装(当前还不支持64位的exe安装文件安装,由于distutils安装兼容问题)

注意:windows环境并未自己动手验证


2)Linux

python版本支持 

32位系统至少需要python2.3.5或以上版本支持 

64位系统至少需要python2.4或以上版本支持

yum安装:

[root@Node3 ~]# yum install python-setuptools

[root@Node3 ~]# rpm -ql python-setuptools
/usr/bin/easy_install
/usr/bin/easy_install-2.6
/usr/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg-info
/usr/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg-info/PKG-INFO
/usr/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg-info/SOURCES.txt
/usr/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg-info/dependency_links.txt
/usr/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg-info/entry_points.txt
/usr/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg-info/top_level.txt
/usr/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg-info/zip-safe
/usr/lib/python2.6/site-packages/easy_install.py

源码安装:

[root@Node4 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  mogilefs  setuptools-28.6.1.tar.gz
[root@Node4 ~]# tar xf setuptools-28.6.1.tar.gz 
[root@Node4 ~]# ls
anaconda-ks.cfg  install.log.syslog  setuptools-28.6.1
install.log      mogilefs            setuptools-28.6.1.tar.gz
[root@Node4 ~]# cd setuptools-28.6.1
[root@Node4 setuptools-28.6.1]# ls
bootstrap.py  easy_install.py  msvc-build-launcher.cmd  pytest.ini  setuptools
CHANGES.rst   launcher.c       pavement.py              README.rst  setuptools.egg-info
conftest.py   LICENSE          PKG-INFO                 setup.cfg   tests
docs          MANIFEST.in      pkg_resources            setup.py
[root@Node4 setuptools-28.6.1]# python setup.py install
running install
running bdist_egg
running egg_info
.
.
.
creating dist
creating 'dist/setuptools-28.6.1-py2.6.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing setuptools-28.6.1-py2.6.egg
Copying setuptools-28.6.1-py2.6.egg to /usr/lib/python2.6/site-packages
Adding setuptools 28.6.1 to easy-install.pth file
Installing easy_install script to /usr/bin
Installing easy_install-2.6 script to /usr/bin

Installed /usr/lib/python2.6/site-packages/setuptools-28.6.1-py2.6.egg
Processing dependencies for setuptools==28.6.1
Finished processing dependencies for setuptools==28.6.1


3、distribute

    类似于setuptools,支持python3,安装完distribute后会有easy_install

Distribute被创建是因为Setuptools包不再维护了。

安装distribute:

[root@Node3 ~]# ls
anaconda-ks.cfg       install.log         ipython-1.2.1.tar.gz  Python-2.7.6.tar.xz  test.sh
dev1                  install.log.syslog  mogilefs              src
distribute-0.7.3.zip  ipython-1.2.1       Python-2.7.6          test
[root@Node3 ~]# unzip distribute-0.7.3.zip 

[root@Node3 ~]# ls
anaconda-ks.cfg   distribute-0.7.3.zip  ipython-1.2.1         Python-2.7.6         test
dev1              install.log           ipython-1.2.1.tar.gz  Python-2.7.6.tar.xz  test.sh
distribute-0.7.3  install.log.syslog    mogilefs              src
[root@Node3 ~]# cd distribute-0.7.3
[root@Node3 distribute-0.7.3]# ls
distribute.egg-info  PKG-INFO          setup.cfg  setuptools
MANIFEST.in          pkg_resources.py  setup.py   setuptools.egg-info
[root@Node3 distribute-0.7.3]# /usr/local/bin/python2.7 setup.py install
running install
running bdist_egg
running egg_info


Installed /usr/local/python27/lib/python2.7/site-packages/distribute-0.7.3-py2.7.egg
Processing dependencies for distribute==0.7.3
Searching for setuptools==0.8b2
Best match: setuptools 0.8b2
Adding setuptools 0.8b2 to easy-install.pth file
Installing easy_install script to /usr/local/python27/bin
Installing easy_install-2.7 script to /usr/local/python27/bin

Using /root/distribute-0.7.3
Finished processing dependencies for distribute==0.7.3


4、easy_install 

      setuptools 和 distribute自带的安装脚本, 也就是一旦setuptools或distribute安装完毕, easy_install 也便可用了。

      easy_install 最大的特点是自动查找Python官方维护的包源 PyPI , 安装第三方Python包非常方便。

文档:http://peak.telecommUnity.com/DevCenter/EasyInstall

      pip可正常工作在Windows、Mac OS、Unix/Linux等上,但是需要至少2.6+和3.2+的CPython或PyPy的支持。python 2.7.9 和3.4以后的版本已经内置累pip程序,所以不需要安装。

easy_install的用法:

安装一个包:

easy_install 包名
easy_install "包名 == 包的版本号"

升级一个包:

easy_install -U "包名 >= 包的版本号"

easy_install --help                 来查看命令详情

[root@Node3 ~]# /usr/local/python27/bin/easy_install --help

Global options:
  --verbose (-v)  run verbosely (default)
  --quiet (-q)    run quietly (turns verbosity off)
  --dry-run (-n)  don't actually do anything
  --help (-h)     show detailed help message
  --no-user-cfg   ignore pydistutils.cfg in your home directory

Options for 'easy_install' command:
  --prefix                       installation prefix
  --zip-ok (-z)                  install package as a zipfile
  --multi-version (-m)           make apps have to require() a version
  --upgrade (-U)                 force upgrade (searches PyPI for latest
                                 versions)
  --install-dir (-d)             install package to DIR
  --script-dir (-s)              install scripts to DIR
  --exclude-scripts (-x)         Don't install scripts
  --always-copy (-a)             Copy all needed packages to install dir
  --index-url (-i)               base URL of Python Package Index
  --find-links (-f)              additional URL(s) to search for packages
  --delete-conflicting (-D)      no longer needed; don't use this
  --ignore-conflicts-at-my-risk  no longer needed; don't use this
  --build-directory (-b)         download/extract/build in DIR; keep the
                                 results
  --optimize (-O)                also compile with optimization: -O1 for
                                 "python -O", -O2 for "python -OO", and -O0 to
                                 disable [default: -O0]
  --record                       filename in which to record list of installed
                                 files
  --always-unzip (-Z)            don't install as a zipfile, no matter what
  --site-dirs (-S)               list of directories where .pth files work
  --editable (-e)                Install specified packages in editable form
  --no-deps (-N)                 don't install dependencies
  --allow-hosts (-H)             pattern(s) that hostnames must match
  --local-snapshots-ok (-l)      allow building eggs from local checkouts
  --version                      print version information and exit
  --no-find-links                Don't load find-links defined in packages
                                 being installed
  --user                         install in user site-package
                                 '/root/.local/lib/python2.7/site-packages'

usage: easy_install [options] requirement_or_url ...
   or: easy_install --help


5、pip 

     pip的目标是取代easy_install。

     easy_install 有很多不足: 安装事务是非原子操作, 只支持 svn, 没有提供卸载命令, 安装一系列包时需要写脚本; pip 解决了以上问题, 已俨然成为新的事实标准, virtualenv 与它已经成为一对好搭档;

安装pip:

Pip的安装可以通过源代码包,easy_install或者脚本

下面介绍一下各种安装方法:

源代码方式:

$ wget http://pypi.python.org/packages/source/p/pip/pip-0.7.2.tar.gz (替换为最新的包)
$ tar xzf pip-0.7.2.tar.gz
$ cd pip-0.7.2
$ python setup.py install

easy_install:

$ easy_install pip

get_pip.py 脚本:

$ wget https://raw.GitHub.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py
[root@Node3 ~]# /usr/local/python27/bin/easy_install pip
Searching for pip
Reading https://pypi.python.org/simple/pip/
Best match: pip 8.1.2
Downloading https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a
Processing pip-8.1.2.tar.gz
Writing /tmp/easy_install-FcoZnA/pip-8.1.2/setup.cfg
Running pip-8.1.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-FcoZnA/pip-8.1.2/egg-dist-tmp-0B65k1
warning: no previously-included files found matching '.coveragerc'
warning: no previously-included files found matching '.mailmap'
warning: no previously-included files found matching '.travis.yml'
warning: no previously-included files found matching '.landscape.yml'
warning: no previously-included files found matching 'pip/_vendor/Makefile'
warning: no previously-included files found matching 'tox.ini'
warning: no previously-included files found matching 'dev-requirements.txt'
warning: no previously-included files found matching 'appveyor.yml'
no previously-included directories found matching '.github'
no previously-included directories found matching '.travis'
no previously-included directories found matching 'docs/_build'
no previously-included directories found matching 'contrib'
no previously-included directories found matching 'tasks'
no previously-included directories found matching 'tests'
Adding pip 8.1.2 to easy-install.pth file
Installing pip script to /usr/local/python27/bin
Installing pip2.7 script to /usr/local/python27/bin
Installing pip2 script to /usr/local/python27/bin

Installed /usr/local/python27/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip

pip的使用:

[root@Node3 ~]# /usr/local/python27/bin/pip -v

Usage:   
  pip <command> [options]

Commands:
  install                     Install packages.
  download                    Download packages.
  uninstall                   Uninstall packages.
  freeze                      Output installed packages in requirements format.
  list                        List installed packages.
  show                        Show information about installed packages.
  search                      Search PyPI for packages.
  wheel                       Build wheels from your requirements.
  hash                        Compute hashes of package archives.
  completion                  A helper command used for command completion
  help                        Show help for commands.

General Options:
  -h, --help                  Show help.
  --isolated                  Run pip in an isolated mode, ignoring environment variables and
                              user configuration.
  -v, --verbose               Give more output. Option is additive, and can be used up to 3
                              times.
  -V, --version               Show version and exit.
  -q, --quiet                 Give less output.
  --log <path>                Path to a verbose appending log.
  --proxy <proxy>             Specify a proxy in the form [user:passwd@]proxy.server:port.
  --retries <retries>         Maximum number of retries each connection should attempt
                              (default 5 times).
  --timeout <sec>             Set the Socket timeout (default 15 seconds).
  --exists-action <action>    Default action when a path already exists: (s)witch, (i)gnore,
                              (w)ipe, (b)ackup.
  --trusted-host <hostname>   Mark this host as trusted, even though it does not have valid
                              or any HTTPS.
  --cert <path>               Path to alternate CA bundle.
  --client-cert <path>        Path to SSL client certificate, a single file containing the
                              private key and the certificate in PEM format.
  --cache-dir <dir>           Store the cache data in <dir>.
  --no-cache-dir              Disable the cache.
  --disable-pip-version-check
                              Don't periodically check PyPI to determine whether a new
                              version of pip is available for download. Implied with --no-
                              index.

     安装: pip install [PACKAGE_NAME]   

     升级:pip install -U [PACKAGE_NAME]   

     卸载: pip uninstall [PACKAGE_NAME]

     查询包: pip search [PACKAGE_NAME]  

     列出安装的包及其版本:pip freeze

     查看帮助:pip help

     通过使用==, >=, <=, >, <来指定一个版本号

$ pip install 'markdown<2.0'
$ pip install 'Markdown>2.0,<2.0.3'

下载地址:https://pypi.python.org/pypi/pip 通过python setup.py install来安装,通过pip --version来查看版本。


--结束END--

本文标题: 【Python基础】08、Python模

本文链接: https://lsjlt.com/news/191518.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【Python基础】08、Python模
    一、python模块1、python文件     可以将代码量较大的程序分割成多个有组织的、彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块     模块在物理形势上表现为以.py结尾的代码文件            ...
    99+
    2023-01-31
    基础 Python
  • Python基础(08):迭代器和解析
    迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。一、NEXT语法:next(iterator[, default])说明:函数必须接收一个可迭代对象参数,每次调...
    99+
    2023-06-02
  • python基础-1:python模块概
       小生博客:http://xsboke.blog.51cto.com                                -------谢谢您的参考,如有疑问,欢迎交流一、 模块简介  1. 概念n个.py文件组成的代码集合就...
    99+
    2023-01-31
    模块 基础 python
  • Python基础——5模块
    使用模块 ‘the first line is zhushi’ _author_ = ‘syz’ import sys def test(): args = sys.argv if len(args)==1: ...
    99+
    2023-01-30
    模块 基础 Python
  • Python基础——模块与包
    在Python中,可以用import导入需要的模块、包、库、文件等。 把工作路径导入系统路径 import os#os是工作台 import sys#sys是系统 sys.path.append(os.getcwd()) sys.p...
    99+
    2023-01-31
    模块 基础 Python
  • Python基础-Python基础使用
    上篇文章 Python基础-初识Python 我们已经知道了什么是Python,Python的用处、和Python的解释器、Python的安装,这篇文章,我们主要讲Python的使用入门本文防盗链:http://python789.blog...
    99+
    2023-01-31
    基础 Python
  • Python基础之模块详解
    目录一、模块1、模块的四种形式2、为什么要用模块?二、如何用模块1、import 模块名导入重命名:smt变量指向span模块的名称空间导入多个模块2、from 模块名 import...
    99+
    2024-04-02
  • python基础学习16----模块
    模块(Module)的引入   import 模块名   调用模块中的函数的方式为 模块名.函数名 这种方式引入会相当于将模块中代码执行一遍,所以如果引入的模块中有输出语句,那么只写import 模块名,运行也会显示输出。 若...
    99+
    2023-01-30
    模块 基础 python
  • 第一模块:Python基础(二)
    目录 1.变量 常量 2.用户交互和注释 程序交互 注释 字符串 ...
    99+
    2023-01-31
    模块 基础 Python
  • Python基础篇-Python基础语法
    为什么学习pythonhttp://www.apelearn.com/bbs/thread-7739-1-1.html Python的安装 getconf LONG_BIT     查看系统版本多少位 rpm -q python uname...
    99+
    2023-01-31
    基础 语法 Python
  • Python基础——1基础
    输出 print(‘把子肉爱上热干面’,‘哈哈’)  # ‘,’输出为空格 输人 name = input(‘提示的内容’) /浮点除法  %.6f //地板除法  整除 %  取余 python编码问题 (采用Unicode编码) ...
    99+
    2023-01-30
    基础 Python
  • Python 常用基础模块(二):os模块
    目录 一、os模块介绍二、路径介绍三、常用方法详解3.1 getcwd()方法——获取当前工作目录(字符串)3.2 listdir()方法——返回指定路径下的目录名和文件名3.3 makedi...
    99+
    2023-09-09
    python 开发语言
  • Python基础之hashlib模块详解
    一、hashlib简介 什么叫hash: hash是一种算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA5...
    99+
    2022-06-02
    Python hashlib模块 python模块
  • Python爬虫基础之requestes模块
    一、爬虫的流程 开始学习爬虫,我们必须了解爬虫的流程框架。在我看来爬虫的流程大概就是三步,即不论我们爬取的是什么数据,总是可以把爬虫的流程归纳总结为这三步: 指定 url,可以简单的理解为指定要爬取的网址 发送请求。...
    99+
    2022-06-02
    Python requestes模块 python爬虫
  • Python基础第三方模块requestsopenpyxl
    目录一、第三方模块的下载与使用1、什么是第三方模块2、如何安装第三方模块方式一:pip工具方式二:pycharm中下载3、注意事项1、报错并有警告信息2、报错,提示关键字3、报错,无...
    99+
    2024-04-02
  • python基础学习23----IO模型
    对于一个网络IO(network IO),它会涉及到两个系统对象,一个是调用这个IO的process (or thread),另一个就是系统内核(kernel)。当一个read操作发生时,该操作会经历两个阶段: 1.等待数据准备 2.将数...
    99+
    2023-01-30
    模型 基础 python
  • Python基础之函数和模块
    函数的基本使用 函数的定义:把具有独立功能的代码块组织成一个小模块,在需要的时候调用。或者说,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数的使用:1.定义函数;2.调用函数。 函数的作用:能提高应用的模...
    99+
    2023-01-31
    函数 模块 基础
  • python基础之模块的导入
    import导入模块 import time #导入的时模块中的所有内容 print(time.ctime()) #调用模块中的函数 # import 到首次导入模块的时候...
    99+
    2024-04-02
  • Python基础
    主要是复习时总结自己不太熟悉的知识点了(面向Internet的总结)。 函数的参数 位置参数——按位置依次对应 关键字参数——按“键值对”对应 func('hello', val = 1) 调用时:若有位置参数,位置参数必须在关键字参...
    99+
    2023-01-30
    基础 Python
  • python 基础
    #列表是python最常用的数据类型,它可以作为一个方括号内的逗号分隔值出现 列表的数据类型不需要相同的类型 创建一个列表,只有在方括号([])以逗号(,)分割开即可,不需要相同的数据类型 列表表示方式 list1=['gao_wang',...
    99+
    2023-01-31
    基础 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作