Pythonはパッケージ化するために、独自のモジュールを作成します

写真よく一緒にPyConとAminの上にないフラスコチュートリアル文書からモジュールのアイデアにパッケージ化プロジェクトは、あなたがより多くの人々のものが表示されないことがあります。それは、プロジェクトをインポートして、どこでもできるように、またはによってできるように、パッケージにパッケージ化フラスコプロジェクトの一部にすることができ、プロジェクトのドキュメンテーションのインストール時に見ることができます興味があるのpip install youproject.whl依存関係をインストールした後にインストールするプロジェクトの方法。
公式のパッケージガイドラインででき一見:ジャンプ

1.setuptoolsプロフィール

setuptoolsそれはdistutils(自己百度)強化されたバージョン。それは、より良い開発者はPythonパッケージを作成し、配布することができ、機能の多くを拡張しました。ほとんどのユーザーは、Pythonのsetuptoolsのより高度なモジュールを使用します。

2.パケットフォーマット

Pythonライブラリのパッケージフォーマットはホイールと卵が含まれます。ホイールフォーマットは2012年にPEP427によって定義されている間に卵形式は、setuptoolsのことで2004年に導入されました。ホイールの卵インストールして使用することは、テストを完了し、リリース前に構築する必要があり、再構築してコンパイルする必要はありません。今、広く使用Wheel以上の

3.setup.pyファイル

from setuptools import find_packages, setup

setup(
    name='flaskr',
    version='1.0.0',
    packages=find_packages(),
    include_package_data=True,
    zip_safe=False,
    install_requires=[
        'flask',
    ],
)
相关参数可以[查看](https://setuptools.readthedocs.io/en/latest/setuptools.html#metadata)

一般的なパラメータは説明しました:

パラメーター名 説明
名前 パッケージ名称
パッケージのバージョン
著者 著者プログラム
AUTHOR_EMAIL プログラムの電子メールアドレスの著者
メンテナ ディフェンダー
maintainer_email ディフェンダーのメールアドレス
URL プログラムの公式ウェブサイトのアドレス
ライセンス プログラム権限情報
説明 プログラムの簡単な説明
長い説明 プログラムの詳細説明
プラットフォーム 手順該当するソフトウェアプラットフォームの一覧
分類 プログラムのカテゴリリストが属します
キーワード 番組のキーワードのリスト
パッケージ パッケージのディレクトリ(通常は含まれて対処する必要がinitはの.pyフォルダファイル)
py_modules Pythonパッケージは、単一のファイルのリストを要求します
DOWNLOAD_URL プログラムをダウンロードしてください
cmdclass カスタムコマンドを追加します。
package_data 指定されたデータファイルは、カプセル化され含まれている必要があります
include_package_data 自動的にすべてのバージョン管理(CVS / SVN / gitの)カプセル化されたデータファイルを含めます
exclude_package_data include_package_dataがTrueの場合、このオプションはいくつかのファイルを除外するために使用されます
データファイル などの画像、プロフィール、などのデータファイルを梱包する際にパッケージする必要があります
ext_modules 指定された拡張モジュール
スクリプト 指定された実行可能なスクリプトは、インストールスクリプトは、システムのPATHにインストールされます。
package_dirを ソースパッケージにマップされているディレクトリ内のファイルを指定
必要となります 依存他のパッケージを指定します
提供 モジュールが依存して提供することができる指定
install_requires インストールは、インストールの依存関係を必要とする場合
entry_points サービスやプラグインの動的な発見、以下に詳細に話します
setup_requires 自身がパッケージを依存setup.pyファイルを実行するように指定します
dependency_links ダウンロードの依存関係を指定します
extras_require アドバンスト/追加機能は、現在のパッケージバンドルに依存する必要があります
zip_safe 圧縮された、しかし、ディレクトリの形で設置ません

3.1。find_packagesは、(= ')、*' '(=除外)、(=含めます')

上記のsetup.py使用find_packages()、我々は簡単にパッケージを手動で追加する必要はありません追加することができます。デフォルトの検索setup.py各含む同じディレクトリの下の__init__.pyパッケージとしてディレクトリを追加します。

関数の最初のパラメータは、ディレクトリ検索パッケージ、パラメータを指定するために使用されexclude、除外するパッケージを指定するために使用include含まれるようにパッケージを指定します。

3.2。include_package_data:

Trueに設定し、パッケージは自動的にファイルを使用し、コントロールのバージョンを追加する必要がないときに受けるバージョン管理データファイルを追加しますpackage_data

3.3manifest.inファイル(setup.py同じディレクトリで)

文件内容就是需要保护在分发包中的文件

include flaskr/schema.sql
graft flaskr/static
graft flaskr/templates
global-exclude *.pyc

复制所有 statictemplates 文件夹中的文件,schema.sql文件,但是排除所有字节文件。

3.4. zip_safe

zip_safe 参数决定包是否作为一个zip压缩后的 egg 文件安装,还是作为一个以 .egg 结尾的目录安装。因为有些工具不支持 zip 压缩文件,而且压缩后的包也不方便调试,所以建议将其设为 False,即 zip_safe=False

3.5. install_requires

如果你的包依赖于其他包,可以指定install_requires参数,为一个列表

install_requires=[
    'requests>=1.0',
    'flask>=1.0'
]

默认从pypi下载安装指定依赖包,也可以指定链接下载依赖

dependency_links = [
    "http://packages.example.com/snapshots/foo-1.0.tar.gz",
    "http://example2.com/p/bar-1.0.tar.gz",
]

4.本地测试安装

pip3 install -e .

在当前文件夹中寻找setup.py并在开发模式下安装,安装好后通过pip list即可查看本地安装的情况。换个文件夹开始导入你的包进行测试,是否可以正常使用。

5.构建发行文件

先安装好wheel
pip3 install wheel

安装好后,执行bdist_wheel构建发行文件

python3 setup.py bdist_wheel

会生成dist目录,下面有一个flaskr-1.0.0-py3-none-any.whl类似的由项目名称、版本号和项目安装要求的标记组成。复制该文件到别的计算机,通过pip命令安装该文件。

6.发布包(简略)

如果要将包发布到PyPI(Python Package Index)官方维护的第三方包仓库,需要先注册pypi的账号,然后创建~/.pypirc文件进行一些配置

[distutils]
index-servers = pypi

[pypi]
username:xxx
password:xxx

注册项目
python3 setup.py register
成功注册后,构建源码包发布
python3 setup.py sdist upload

最后的最后,别忘了README.mdLICENSE,最好再加上requirements.txt,可以参考文章开头官网的打包流程

おすすめ

転載: www.cnblogs.com/mangM/p/11619247.html