其實(shí)今天量都夠了,但是還是想再補(bǔ)一篇: 本文的寫作環(huán)境,喜歡這種黑暗+昏暗的燈光 緣起~為什么會(huì)有這樣的一篇文章呢?因?yàn)槲易罱谧xPython的官方文檔,里面正好讀到了這里安裝Python模塊,然后我天天也在讀源碼,也在實(shí)踐中得到了一些佐證。所以記錄一下。 這一切是一個(gè)組織在維護(hù): https://www.pypa.io/en/latest/ Python Packaging Authority (PyPA) 是一個(gè)工作組,負(fù)責(zé)維護(hù) Python 打包中使用的一組核心軟件項(xiàng)目。 這里我找一個(gè)庫作為說明: https://github.com/3b1b/manim 使用這個(gè) https://docs.manim.org.cn/ https://3b1b.github.io/manim/ 然后解壓,看到這些,今天就說這些 這里是打印Python的版本 https://packaging.python.org/ 關(guān)于我這篇文章的參考位置 py -m pip --version
pip 21.3.1 from C:\Users\yunswj\AppData\Local\Programs\Python\Python36\lib\site-packages\pip (python 3.6) 打印PIP的版本。 https://packaging.python.org/tutorials/packaging-projects/ 看這個(gè) https://pip.pypa.io/en/stable/ https://setuptools.pypa.io/en/latest/ py -m pip install --upgrade pip pip的源文件樣子 packaging_tutorial/ └── src/ └── example_package/ ├── __init__.py └── example.py 未來寫庫應(yīng)該寫的是這樣的 我們創(chuàng)建一個(gè) pyproject.toml告訴構(gòu)建工具(如pip和build)構(gòu)建項(xiàng)目需要什么。 給出要構(gòu)建包的依賴包 我們的manim,這里也有寫法 配置元數(shù)據(jù)有兩種類型的元數(shù)據(jù):靜態(tài)和動(dòng)態(tài)。
這個(gè)是demo的例子: [metadata] name = example-pkg-YOUR-USERNAME-HERE version = 0.0.1 author = Example Author author_email = author@example.com description = A small example package long_description = file: README.md long_description_content_type = text/markdown url = https://github.com/pypa/sampleproject project_urls = Bug Tracker = https://github.com/pypa/sampleproject/issues classifiers = Programming Language :: Python :: 3 License :: OSI Approved :: MIT License Operating System :: OS Independent
[options] package_dir = = src packages = find: python_requires = >=3.6
[options.packages.find] where = src setuptools的例子: [metadata] name = my_package version = attr: src.VERSION description = My package description long_description = file: README.rst, CHANGELOG.rst, LICENSE.rst keywords = one, two license = BSD 3-Clause License classifiers = Framework :: Django License :: OSI Approved :: BSD License Programming Language :: Python :: 3 Programming Language :: Python :: 3.5
[options] zip_safe = False include_package_data = True packages = find: scripts = bin/first.py bin/second.py install_requires = requests importlib; python_version == "2.6"
[options.package_data] * = *.txt, *.rst hello = *.msg
[options.entry_points] console_scripts = executable-name = package.module:function
[options.extras_require] pdf = ReportLab>=1.2; RXP rest = docutils>=0.3; pack ==1.1, ==1.3
[options.packages.find] exclude = src.subpackage1 src.subpackage2 相當(dāng)于教科書級別的寫法了 把我們的元文件復(fù)制進(jìn)來 https://setuptools.pypa.io/en/latest/userguide/declarative_config.html 這個(gè)是語法,是和win ini文件一樣的配置文件 支持的 INI 文件結(jié)構(gòu)配置文件由部分組成,每個(gè)部分由一個(gè) 大概就是這樣的一個(gè)情況 https://pypa-build.readthedocs.io/en/stable/index.html 構(gòu)建工具的地址 執(zhí)行后報(bào)錯(cuò),我查了一下,應(yīng)該是在虛擬環(huán)境構(gòu)建 https://packaging.python.org/tutorials/installing-packages/#creating-virtual-environments 在這篇里面有論述 python.exe -m venv C:\Users\yunswj\Desktop\tf 但是我不會(huì)用 pip install virtualenv 先安裝這個(gè)工具 python3 -m venv . 在當(dāng)前環(huán)境建立一個(gè)虛擬環(huán)境 然后激活一下 新環(huán)境就兩個(gè)包 py -m pip install --upgrade build 安裝構(gòu)建工具 py -m build 我構(gòu)建失敗了 取消激活環(huán)境,刪除就行 https://zhuanlan.zhihu.com/p/42561895 參考文章 在當(dāng)前目錄創(chuàng)建虛擬環(huán)境 $ python3 -m venv . 在當(dāng)前目錄創(chuàng)建獨(dú)立的python環(huán)境 $ virtualenv --no-site-packages venv 激活虛擬環(huán)境 $ source venv/bin/activate 停用虛擬環(huán)境 $ deactivate 刪除虛擬環(huán)境 $ rm -rf venv 操,一到動(dòng)手,一堆錯(cuò)誤,mb。。。你就當(dāng)我構(gòu)建成功了。 一般這樣的目錄就是一個(gè)不錯(cuò)的包 一個(gè)好的包一定少不了一個(gè)文檔,那下面就安裝一下 py -m pip install -U sphinx 安裝好以后 sphinx-quickstart 執(zhí)行這個(gè) 按照提示摁 構(gòu)建 就構(gòu)建出來了 https://docs.readthedocs.io/en/latest/intro/import-guide.html 這里有更多的細(xì)節(jié) 注意的是venv才是最新的構(gòu)建方式 如果你執(zhí)行的話,會(huì)有讓你選擇解釋器的選項(xiàng) |
|