我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【Python基础】08、Python模

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【Python基础】08、Python模

一、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,class="lazy" data-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              class="lazy" data-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              class="lazy" data-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来查看版本。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【Python基础】08、Python模

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【Python基础】08、Python模

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

Python基础(08):迭代器和解析

迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。一、NEXT语法:next(iterator[, default])说明:函数必须接收一个可迭代对象参数,每次调
2023-06-02

python基础-1:python模块概

小生博客:http://xsboke.blog.51cto.com                                -------谢谢您的参考,如有疑问,欢迎交流一、 模块简介  1. 概念n个.py文件组成的代码集合就称为模
2023-01-31

Python基础——5模块

使用模块‘the first line is zhushi’_author_ = ‘syz’import sysdef test(): args = sys.argv if len(args)==1: print(
2023-01-30

Python基础——模块与包

在Python中,可以用import导入需要的模块、包、库、文件等。 把工作路径导入系统路径 import os#os是工作台import sys#sys是系统sys.path.append(os.getcwd())sys.path写脚本文
2023-01-31

Python基础-Python基础使用

上篇文章 Python基础-初识Python 我们已经知道了什么是Python,Python的用处、和Python的解释器、Python的安装,这篇文章,我们主要讲Python的使用入门本文防盗链:http://python789.blog
2023-01-31

Python基础篇-Python基础语法

为什么学习pythonhttp://www.apelearn.com/bbs/thread-7739-1-1.html Python的安装 getconf LONG_BIT     查看系统版本多少位 rpm -q python uname
2023-01-31

第一模块:Python基础(二)

目录 1.变量 常量 2.用户交互和注释 程序交互 注释 字符串 布尔型(bool) 格
2023-01-31

python基础学习16----模块

模块(Module)的引入 import 模块名 调用模块中的函数的方式为模块名.函数名这种方式引入会相当于将模块中代码执行一遍,所以如果引入的模块中有输出语句,那么只写import 模块名,运行也会显示输出。若想只引入模块中的某个函数,可
2023-01-30

Python基础——1基础

输出print(‘把子肉爱上热干面’,‘哈哈’)  # ‘,’输出为空格输人 name = input(‘提示的内容’)/浮点除法  %.6f//地板除法  整除%  取余python编码问题(采用Unicode编码)ord(‘A’) =
2023-01-30

【python基础】——python 复

复数可以用使用函数 complex(real, imag) 或者是带有后缀j的浮点数来指定。比如:>>> a = complex(2, 4)>>> b = 3 - 5j>>> a(2+4j)>>> b(3-5j)>>>对应的实部、虚部和共轭
2023-01-31

Python基础

主要是复习时总结自己不太熟悉的知识点了(面向Internet的总结)。函数的参数位置参数——按位置依次对应关键字参数——按“键值对”对应func('hello', val = 1)调用时:若有位置参数,位置参数必须在关键字参数的前面,但关键
2023-01-30

Python基础之hashlib模块详解

一、hashlib简介 1.什么叫hash: hash是一种算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
2022-06-02

python 基础

#列表是python最常用的数据类型,它可以作为一个方括号内的逗号分隔值出现列表的数据类型不需要相同的类型创建一个列表,只有在方括号([])以逗号(,)分割开即可,不需要相同的数据类型列表表示方式list1=['gao_wang','li_
2023-01-31

Python基础之函数和模块

函数的基本使用函数的定义:把具有独立功能的代码块组织成一个小模块,在需要的时候调用。或者说,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数的使用:1.定义函数;2.调用函数。函数的作用:能提高应用的模块性,和代码的重
2023-01-31

python基础学习23----IO模型

对于一个网络IO(network IO),它会涉及到两个系统对象,一个是调用这个IO的process (or thread),另一个就是系统内核(kernel)。当一个read操作发生时,该操作会经历两个阶段:1.等待数据准备2.将数据从系
2023-01-30

Python基础语法(Python基础知识点)

Python与Perl,C和Java语言等有许多相似之处。不过,也有语言之间有一些明确的区别。本章的目的是让你迅速学习Python的语法。 第一个Python程序: 交互模式编程: 调用解释器不经过脚本文件作为参数,显示以下提示:$ pyt
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录