python包安装及安装包制作

发布时间:2019-09-01 09:50:19编辑:auto阅读(1286)

    1. 单文件模块:直接把文件拷贝到$python_dir/lib  这是类库目录(可直接将单文件或单包放在这里)


    2. 多文件模块,带setup.py:python setup.py install    卸载时只能手动删除,一般安装在系统类库目录下

    python setup.py install --record files.txt 记录安装后文件的路径 (卸载cat files.txt | xargs rm -rf  删除这些文件)

    3.easy_install 方式

    1) 下载ez_setup.py,运行python ez_setup  

    2) easy_install packageName 

    easy_install package.egg

    easy_install *.egg

    4.pip 方式

    先进行pip工具的安裝:easy_install pip(pip 可以通过easy_install 安裝,而且也会装到 Scripts 文件夹下。)

    安裝:pip install PackageName

    更新:pip install -U PackageName

    移除:pip uninstall PackageName

    搜索:pip search PackageName


    5.自制setup.py安装包

    虽然Python的模块可以拷贝安装,但是一般情况下推荐制作一个安装包,即写一个setup.py文件来安装。


    setup.py文件的使用:

    % python setup.py build #编译

    % python setup.py install    #安装

    % python setup.py sdist     #制作分发包

    % python setup.py bdist_wininst #制作windows下的分发包

    % python setup.py bdist_rpm


    setup.py文件的编写:

    setup.py中主要执行一个 setup函数,该函数中大部分是描述性东西,最主要的是packages参数,列出所有的package,可以用自带的find_packages来动态获取package。所以setup.py文件的编写实际是很简单的。


    简单的例子:

    (1).假设你要分发一个叫foo的模块,文件名foo.py

    {import sys 

     def get():

         return sys.path

    },

    那么setup.py内容如下:

    from distutils.core import setup

    #from setuptools import setup, find_packages

    setup(name='foo',

          version='1.0',

          py_modules=['foo'],

          )

    (2).然后,运行python setup.py sdist为模块创建一个源码包

    在当前目录下,会创建dist目录,里面有个文件名为foo-1.0.tar.gz,这个就是可以分发的包(如果使用命令python setup.py bdist_egg,那么会在dist目录中生成foo-1.0-py2.7.egg包,setup.py中第一句引入需要改为from setuptools import setup)。使用者拿到这个包后,解压,到foo-1.0目录下执行:python setup.py install,那么,foo.py就会被拷贝到python类路径下,可以被导入使用(如果安装是egg文件,会把egg文件拷贝到dist-packages目录下)。



    安装包文件:

    (1).假设你要分发mypackage包,将包文件放在script目录下


    那么setup.py内容如下:

    from distutils.core import setup

    #from setuptools import setup, find_packages

    setup(

    name='mypackage',

        version="1.0",

        author="liujin3",

    #scripts=["scripts/otpauth.py","scripts/OtpAuthNSF.py"],

    packages = ["mypackage",],

    package_dir ={ "mypackage": "scripts/mypackage" },

    py_modules=['foo',],#包中需要可见的模块

        description='Implements two-step verification of TOTP',

        long_description=fread('README.rst'),

        license='BSD',

        platforms='any',

        tests_require=['nose'],

        test_suite='nose.collector',

          )

    (2).然后,运行python setup.py sdist为模块创建一个源码包

    在当前目录下,会创建dist目录,里面有个文件名为mypackage-1.0.tar.gz,这个就是可以分发的包(如果使用命令python setup.py bdist_egg,那么会在dist目录中生成foo-1.0-py2.7.egg包,setup.py中第一句引入需要改为from setuptools import setup)。使用者拿到这个包后,解压,到mypackage-1.0目录下执行:python setup.py install,那么,foo.py就会被拷贝到python类路径下,可以被导入使用(如果安装是egg文件,会把egg文件拷贝到dist-packages目录下)。


    具体细节,参考otpauth-1.0.1.tar.gz的模板


    python 包安装没有这么复杂,参考

    https://www.cnblogs.com/maociping/p/6633948.html


关键字