专栏首页python3python包安装及安装包制作

python包安装及安装包制作

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python安装模块的几种方法

    下载模块包,进行解压,进入模块文件夹,执行: python setup.py install

    py3study
  • Docker制作Python运行环境基础

    py3study
  • Python MySQLdb Linux

           本文介绍了Python MySQLdb Linux下安装笔记,本文分别讲解了快速安装和手动编译安装两种方法,并分别讲解了操作步骤,需要的朋友可以参...

    py3study
  • 安装protobuf Python支持

    先从https://github.com/google/protobuf/releases?after=v3.0.0-alpha-3 下载protobuf文件。...

    py3study
  • Ubuntu 14.04下Django&MySQL环境部署

    目前Django的版本已经到1.11了。先去官网下载Linux对应的文件,然后解压&安装。(官网下载地址)

    静默加载
  • python资源大全中文版 原

     github地址:https://github.com/jobbole/awesome-python-cn

    晓歌
  • ubuntu离线安装python环境

    在部署jumpserver时,添加资产后,不能正常推送资产信息,看报错信息后,发现没有python环境,并且没有python环境的服务器均为离线环境,不能使用a...

    dogfei
  • 【答疑解惑】SD卡的来龙去脉

    SD(Secure Digital)与 MMC(Multimedia Card) SD 是一种 flash memory card 的标准,也就是一般常见的 S...

    程序员互动联盟
  • 你看到的跳出率可能是错的

    跳出率通常作为衡量着陆页的一个重要指标之一,根据GA官方的定义是: “跳出”是指您网站上的单页会话。在 Google Analytics(分析)中,“跳出”特指...

    GA小站
  • 享元模式

    享元模式Flyweight Pattern主要用于减少创建对象的数量,以减少内存占用和提高性能,其提供了减少对象数量从而改善应用所需的对象结构的方式,享元模式尝...

    WindrunnerMax

扫码关注云+社区

领取腾讯云代金券