Python打包自己的库并安装

1.官方教程
根据官方教程建立如下文档,一个文件夹包含setup.py和以模块名命名的子文件夹,这里以pkg_name 定义,在pkg_name文件夹下 包含__init__.py 和src文件 .

/test
 	/pkg_name
   			 __init__.py
   			 mymodel.py
    setup.py

配置setup.py

import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="pkg_name",
    version="0.0.1",
    author="Example Author",
    author_email="[email protected]",
    description="A small example package",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/pypa/sampleproject",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
)

这里如果自己用的话,只需要修改下name 和version, 这2个参数会最终显示在pip list下

3.生成安装库
cmd 进入setup目录, 运行 python setup.py sdist 就可以在当前文件夹下的dist文件夹看到压缩文件

4.本地安装库
cmd 进入dist目录 , 运行 pip install pkg_name-0.0.1.tar.gz

5.使用库

安装完毕就可以使用库了,下面命令就是从我们的pkg_name模块下导入mymodel。

from pkg_name import mymodel

6.打包文件包含DLL
如果需要打包DLL,则可以在setup里面加入,package_data. 下面设置的就是在文件夹下,寻找任何包含dll属性的文件并且打包.可也以直到文件夹路径,即字典的key,现在是空。

import setuptools 
setuptools.setup(
    name='leon_CanOpen',
    version='0.0.1',
    description='P-CAN',
    author='leonhu',
    author_email='[email protected]',
    url='创建者网址(选填)',
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3"
    ],
    package_data={
        '':['*dll']
    }
)

7.如果打包的文件import了其他的py文件,可以在文件开头,把当前的文件的绝对路径添加到系统路径中,这样import就不会提示找不到文件了。(如果打包文件包含其他py,最好使用相对路径比较好,不怎么会出错

import sys,os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.append(BASE_DIR)

8.python文件的绝对路径格式注意:

错误:D:/MyPython_lib/myCanOpen
正确: D:\MyPython_lib\myCanOpen

你可能感兴趣的:(Python)