1. 单文件模块:直接把文件拷贝到$python_dir/lib 这是类库目录(可直接将单文件或单包放在这里)
前2步同上 最后一步为 python setup.py sdist, 生成 tar.gz 文件 tar.gz 在Linux与Windows都可方便pip安装 pip install <package>.tar.gz,也方便发布上PyPI 上传到 PyPI
在安装 pyspider 的时候我就遇到了这个问题, pyspider 依赖 pycurl 这个库,而 pycurl 要求系统中存在相对应的库。
原则上安装了pip的环境都有setuptools,但并不影响你去尝试升级一下它。 pip install --upgrade setuptools
python包在开发中十分常见,一般的使用套路是所有的功能做一个python模块包,打包模块,然后发布,安装使用。打包和安装包就是最常见的工作。学习中遇到distutils和setuptools两种打包的工具。
下载模块包,进行解压,进入模块文件夹,执行: python setup.py install
Collecting requests==2.18.4 (from -r requirements.txt (line 63)) Downloadinghttps://files.pythonhosted.org/packages/49/df/50aa1999ab9bde74656c2919d9c0c085fd2b3775fd3eca826012bef76d8c/requests-2.18.4-py2.py3-none-any.whl (88kB) 100% |████████████████████████████████| 92kB 1.7MB/s Collecting jms-storage==0.0.18 (from -r requirements.txt (line 64)) Downloadinghttps://files.pythonhosted.org/packages/db/74/1f9ae797c970c76bb5e1a959beedfa72ea50dbf954daa91f4ce957d9fa41/jms-storage-0.0.18.tar.gz Collecting s3transfer==0.1.13 (from -r requirements.txt (line 65)) Downloadinghttps://files.pythonhosted.org/packages/d7/14/2a0004d487464d120c9fb85313a75cd3d71a7506955be458eebfe19a6b1d/s3transfer-0.1.13-py2.py3-none-any.whl (59kB) 100% |████████████████████████████████| 61kB 2.0MB/s Collecting simplejson==3.13.2 (from -r requirements.txt (line 66)) Downloadinghttps://files.pythonhosted.org/packages/0d/3f/3a16847fe5c010110a8f54dd8fe7b091b4e22922def374fe1cce9c1cb7e9/simplejson-3.13.2.tar.gz (79kB) 100% |████████████████████████████████| 81kB 919kB/s Collecting six==1.11.0 (from -r requirements.txt (line 67)) Downloadinghttps://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl Collecting sshpubkeys==2.2.0 (from -r requirements.txt (line 68)) Downloadinghttps://files.pythonhosted.org/packages/a7/59/7012b9a50caf1085cdda138bb66c502759bc3950fc3270380a2981486441/sshpubkeys-2.2.0-py2.py3-none-any.whl Collecting uritemplate==3.0.0 (from -r requirements.txt (line 69)) Downloadinghttps://files.pythonhosted.org/packages/e5/7d/9d5a640c4f8bf2c8b1afc015e9a9d8de32e13c9016dcc4b0ec03481fb396/uritemplate-3.0.0-py2.py3-none-any.whl Collecting urllib3==1.22 (from -r requirements.txt (line 70)) Downloadinghttps://files.pythonhosted.org/packages/63/cb/6965947c13a94236f6d4b8223e21beb4d576dc72e8130bd7880f600839b8/urllib3-1.22-py2.py3-none-any.whl (132kB) 100% |████████████████████████████████| 133kB 545kB/s Collecting vine==1.1.4 (from -r re
在安装python的相关模块和库时,我们一般使用“pip install 模块名”或者“python setup.py install”,前者是在线安装,会安装该包的相关依赖包;后者是下载源码包然后在本地安装,不会安装该包的相关依赖包。所以在安装普通的python包时,利用pip工具相当简单。但是在如下场景下,使用python setup.py install会更适合需求:
setuptools是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。用户在使用setuptools创建的包时,并不需要已安装setuptools,只要一个启动模块即可。
在这一部分,我们会尝试吧第二章中卡发的留言板应用放到P有PI上面进行公开,在这个过程中学习一下setup.py 的写法以及如何向PyPI上面上传程序包。
格式大概是上面这样了,这是一个没有自定义命令子选项的最简单例子,下面是一个稍微复杂的例子,它的作用是将包发布到pypi:
linux连接SQL Server,pymssql安装包下载,链接:https://pan.baidu.com/s/1zXyhvatpoaFRpcptmv0reA 密码:y3w1
PyPi 是 Python Package Index 的首字母简写,其实表示的是 Python 的 Packag 索引,这个也是 Python 的官方索引。
setup(name='Hello',version='1.0',description='A simple example',author='Magnus Lie Hetland',py_modules=['hello'])
注意:当前环境是Play_Craw, pip install cx-freeze 时自然安装到了C:\Users\xiaosalang\Anaconda3\envs\Play_Craw\Scripts处
Wheel和Egg都是python的打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改为.zip即可可看到压缩包里面的内容。按照官网说法,wheels是发行版Python的新标准并且要取代.egg。 Egg格式是由setuptools在2004年引入,而Wheel格式是由PEP427在2012年定义。 Wheel现在被认为是Python的二进制包的标准格式。
wget --no-check-certificate http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz tar zxf setuptools-0.6c11.tar.gz && cd setuptools-0.6c11 python setup.py build python setup.py install
一、Python包管理工具 Python包管理工具,可以很方便的安装第三方模块
Distutils可以用来在Python环境中构建和安装额外的模块。新的模块可以是纯Python的,也可以是用C/C++写的扩展模块,或者可以是Python包,包中包含了由C和Python编写的模块。
本文介绍了如何利用Python包的发布工具发布自己的Python包。主要包括了setup.py和MANIFEST.ni文件的介绍和编写,以及包安装的过程。
1. 下载 MySQL-python-1.2.3.tar.gz 地址 https://sourceforge.net/projects/mysql-python/
有时候自己写了一个开发基本类,我们把这个类打包为whl或者tar.gz文件,这样的话同事也可以使用自己开发的基本类了
学Python最简单的方法是什么?推荐阅读:30万年薪Python开发工程师成长魔法 在Python环境中已经有很多成熟的包,可以通过安装这些包来扩展我们的程序。 例如,很多时候Python开发人员都会去PyPI网站去查找自己想要使用的包,然后进行安装。PyPI ( Python Package Index)是获得第三方 Python 软件包以补充标准库的一个站点。 在安装Python包的过程中,经常涉及到distutils、setuptools、distribute、setup.py、easy_ins
注意要想制作成包的目录下必须要添加__init__.py文件,这里可以看到父目录名是myapp,它包含了一个同名的子目录,当然你也可以把这个子目录改成src,但是我习惯取相同的名字。
例如,很多时候Python开发人员都会去PyPI网站去查找自己想要使用的包,然后进行安装。PyPI ( Python Package Index)是获得第三方 Python 软件包以补充标准库的一个站点。
1.新建一个文件夹example,里面放入要打包的.py文件,以及必需的_init_.py.
想要发布一个第三方的包,首先你得有一个需要发布的项目。这个项目可以完成任何有意义的事情。比如:今天的样例就是一个Python的测试报告第三方库。
编写setup.py文件,获取帮助:python setup.py --help-commands
Python中我们经常会用到第三方的包,默认情况下,用到的第三方工具包基本都是从Pypi.org里面下载。
新手而言管理 Python 项目中的依赖项是非常具有挑战性的,这个问题是由历史原因引起的并且一直被吐槽。
python模块 就是python的程序模块 顶层文件 模块文件1 模块文件2 可以将代码量较大的程序分割成多个有组织的、彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块。模块在物理形式上表现为以.py结尾的代码文件。一个文件被看作一个独立的模块,一个模块也可以被看作是一个文件。模块的文件名就是模块的名字加上扩展名.py。每个模块都有自己的名称空间。 python允许“导入”其它模块以实现代码重用,从而也实现了将独立的代码文件组织成更大的程序系统。python中,模块也是对象;在一个模块顶层定义的所有变量都在被导入时成为了被导入模块的属性。 python的程序架构 一个python程序通常包括一个顶层程序文件和其它的模块文件(0个、1个或多个) 顶层文件:包含了程序的主要控制流程 模块文件:为顶层文件或其它模块提供各种功能性组件。模块首次导入(或重载)时,python会立即执行模块文件的顶层程序代码(不在函数内的代码),而位于函数主体内的代码直到函数被调用后才会执行。python也自带了很多模块,可以使用help(module)查看,这些被称为python标准库文件。 模块的执行环境 模块是被导入的(import),但模块也可以导入和使用其它模块,这些模块可以用python或其它编程语言写成。 模块可内含变量、函数以及类来进行其工作,而函数和类可以包含变量和其它元素。 建议:在顶层文件可以出现大量的控制流语句,而其它的被调用文件仅包含变量、函数及类,这样程序在执行时效率才会高。 python导入模块 在导入模块时只能使用模块名,而不能使用带.py后缀的模块文件名 import语句:导入指定的整个模块,包括生成一个以模块名命名的名称空间 import module1[, module2[, ... moduleN ]] 建议一个import语句只导入一个模块 import module as module_alias from-import语句: 常用于只导入指定模拟的部分属性至当前名称空间。 from module import name1[, name2[, ... nameN ]] 例:from random import choice,randint,random 建议:在顶层文件可以出现大量的控制流语句,而其它的被调用文件仅包含变量、函数及类,这样程序在执行时效率才会高。 import 和 from - import是赋值语句 import和from 是可执行语句,类似于def,因此,它们可以嵌套在if测试中,出现于def中等等 python执行到这些语句时才会对其进行解析,这意味着,所有来自模块的属性仅在import语句执行后才能使用。 import 和from 都是隐性赋值语句 import 将整个模块对象赋值给一个变量名;from将一个或多个变量名赋值给导入此模块的模块中的同名对象 模块就是名称空间:模块的名称空间可以通过属性__dict__或dir(M)获取;模块属性可通过点号(.)运算符获取,格式为M.attr;模块是一个独立的作用域(本地变量就是全局变量) import的工作机制 import语句导入指定的模块时会执行三个步骤: (1) 找到模块文件:在指定的路径下搜索模块文件 (2) 编译成字节码:文件导入时就会编译,因此顶层文件的.pyc字节码文件在内部使用后会被丢弃,只有被导入的文件才会留下.pyc文件。 (3) 执行模块的代码来创建其所有定义的对象:模块文件中的所有语句会依次执行,从头至尾,而此步骤中任何对变量名的赋值运算,都会产生所得到的模块文件的属性。 注意:模块只在第一次导入时才会执行如上步骤。后续的导入操作只不过是提取内存中已加载的模块对象。reload可用于重新加载模块。 模块搜索: python解释器在import模块时必须先找到对应的模块文件 程序的主目录;PYTHONPATH目录(如果设置了些变量);标准链接库目录;任何.pth文件的内容(如果存在.pth文件) 这四个组件组合起来即为sys.path所包含的路径,而python会选择"在搜索路径中的第一个符合导入文件名"的文件。 import sys sys.path 返回一个路径列表,该路径列表是python解释器需要搜索的路径顺序列表
记住,不要胡乱扫描,出了事概不负责。喜欢就点个赞支持一波吧!Thanks♪(・ω・)ノ
安装步骤如下: 1、wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz 2、tar zxvf MySQL-python-1.2.3.tar.gz 3、cd MySQL-python-1.2.3 4、python setup.py build (这里有可能会报错如下)
Python包 包用于将一组模块归并到一个目录中,此目录即为包,目录名即为报名 包是一个有层次的文件目录结构,它定义了一个由模块和子包组成的Python应用执行环境 基于包,Python在执行模块导入时可以指定模块的导入路径 import dir1,dir2.mod1 例如:要使用如图所示的package1,则py_pkg_mod容器必须要在模块搜索路径中 import package1.mod1 包导入语句的路径内的每个目录内都必须有_init_.py文件 _init_.py可包含python代码,但
(一) 准备工作 1. 新建一个模块(名称自定义),存放要发布的模块代码。 2. 新建一个setup.py的模块(存放模块的元数据,描述相关信息)。 3. 新建一个文件夹(名称和要发布的模块名称一致),然后将上面2个模块放入文件夹中。 例如:我创建一个处理列表数据的模块DisposeList.py,代码如下 #创建一个用来处理列表的函数 def print_li(the_list): for ue in the_list: #判断数据类型是不是列表 if isinstance(u
py2exe 是 Python Distutils 的一个外部扩展,它可以把Python脚本转为可执行的Windows程序,无需安装Python即可运行。
在桌面创建demo.py文件,并把receiveMsg.py和sendMsg.py使用import文件.模块的方式导入demo.py文件。
paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。
包是从逻辑上来组织模块的,也就是说它是用来存放模块的,如果想导入其他目录下的模块,那么这个目录必须是一个包才可以导入。
wheel文件 Wheel和Egg都是python的打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改为.zip即可可看到压缩包里面的内容。按照官网说法,wheels是发行版Python的新标准并且要取代.egg。 Egg格式是由setuptools在2004年引入,而Wheel格式是由PEP427在2012年定义。 Wheel现在被认为是Python的二进制包的标准格式。
一个 Python 软件包中的 setup.py 文件包含这个 Python 包如何打包发布等重要信息。本文主要对这篇博客(https://amir.rachum.com/blog/2017/07/28/python-entry-points/)进行了翻译解读,以解释 Python setup.py 文件中 entry_point 用法。
这次来介绍下python第三方包的安装,前面介绍了3种方式,我们这次再介绍一种方式。前两种方式见下面的链接。
使用cython编译pyx文件输出c和h文件(带cdef public等定义才会输出头文件),pyx添加
在Python开发过程中,将自己的库打包并通过pip进行安装是一项重要的技能。这篇文章将详细讲解如何制作一个zip格式的Python库,并确保它可以通过pip安装。我们将涵盖从代码准备到最终发布的每个步骤。
毕竟丰富的第三方库是python的优势所在,为了更加方便的安装第三方库,使用pip命令,我们需要进行相应的安装。 1、安装pip前需要前置安装setuptools 命令如下: wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26 tar -zxvf setuptools-19.6
PS:这只是一个很简单的例子,当然你将你做的代码打包上传到某个网盘,供其他人下载安装使用
关于python程序打包的介绍就不多说了,大部分的python基础书上都有介绍。这里就直接演练。
https://www.python.org/downloads/release/python-2711/
领取专属 10元无门槛券
手把手带您无忧上云