写真よく一緒に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
复制所有
static
和templates
文件夹中的文件,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.md
和LICENSE
,最好再加上requirements.txt
,可以参考文章开头官网的打包流程