社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

手把手教你构建自己的第一个Python包

测度空间 • 6 年前 • 329 次点击  
阅读 42

手把手教你构建自己的第一个Python包

微信公众号:测度空间

1. 使用Github创建项目存储库

请记住选择.gitignore和liensce文件。 .gitignore文件可以帮助您避免将一些中间文件提交到git存储库。

2. 下载git存储库

找到存储库的git地址,并通过执行以下操作将代码下载到本地目录。

git clone https://github.com/xxxx/mydates.git
复制代码

3. 设计包结构

现在是时候设计你的包结构了。

我们将编写一个名为mydates的简单包,它包含两个模块 - DatescoreDates有一个类Important_Dates()。这个类用两个变量初始化:birth_daywedding_day,然后使用两个函数get_days_passed_in_my_life()get_days_passed_in_marriage()来计算相应的天数。·core有一个测试函数print_test(),它只输出一个测试句子。

我们将两个模块放在文件夹mydates下。这里mydates是我们Python包的名称。在mydates文件夹下我们创建一个初始文件__initi__.py来告诉Python自动包含所有模块文件。__init__.py文件的内容如下:

from .core import *
from . import Dates
复制代码

以上我们展示了引用模块的两种不同方式。from .core import *表明可以直接从我们的包mydates中导入函数,例如from mydates import print_testfrom . import Dates意味着我们需要首先导入Dates模块,例如from mydates import Dates

在我们准备好模块之后,我们为脚本get_my_date.py创建了另一个文件夹scripts。这个测试脚本如下:

from mydates import Dates
from mydates import print_test

birth_day = '1999-09-09'
wedding_day = '2012-05-09'

mydays = Dates.Important_Dates(birth_day, wedding_day)

mydays.get_days_passed_in_my_life()

mydays.get_days_passed_in_marriage()

print_test()
复制代码

整个Python包的结构如下:

4. 编写setup.py文件

要安装我们的软件包mydates,我们还需要编写一个setup.py文件,如下所示:

from distutils.core import setup

setup(
    name='mydates',
    version='0.0.1',
    author='X.X',
    author_email='xx@example.com',
    url='www.example.com',
    license='LICENSE',
    packages=['mydates'],
    description='An example of building Python package.',
    install_requires=[
    #'python>=3.6.0',
    #'pandas>=0.10.0'
    ]
)
复制代码

大多数时候我们自己的包需要用到其他Python包的函数,也就是所谓的依赖包。有两种方法可以声明这些所依赖的包信息。

  • a) 把所需要的包信息写在setup.py文件的install_requires字典中。
  • b) 单独生成一个requirements.txt文件。

第二种方法是首选方法,因为它提供了所有必需包的最全面的列表。 此处给出了两种方法详细对比说明. 本包中用到的requirements.txt文件如下:

python>=3.6.0
pandas>=0.1.0
复制代码

注:一般在开发一个Python包的时候会单独创建一个环境,然后我们可以用pip freeze > requirements.txt语句来自动生成requirments.txt文件。在安装的时候,可以用pip install -r requirements.txt安装相应的包。

5. 安装包的两种方法

现在我们可以安装我们的第一个Python包mydates了。同样,我们可以使用两种方式进行安装。

a)官方模式:在包根文件夹下运行pip install . 。这与安装其他Python包类似。 b)开发模式:pip install -e .。这样我们所做的任何更改都可以立即反映到包中,这是安装开发包的典型方法。

一旦我们安装了软件包,我们就可以转到scripts文件夹并运行测试脚本get_my_dates.py,它会给我们以下结果:

You have been living in this world for 7192 days!
You have been married for 2566 days!
This is a test.
复制代码

恭喜!至此你已经完成了你的第一个Python包!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/33299
 
329 次点击