Es war unerwartet mühsam, es so einfach wie das Knotenpaketsystem zu machen.
Erstellen Sie ein geeignetes Verzeichnis.
mkdir mymodule && cd $_
Verwenden Sie virtualenv oder direnv, um die Systempython von der Python im Verzeichnis zu isolieren.
Für virtualenv virtualenv env
Führen Sie für direnv "direnv edit." Und dann "layout python" in dem von Ihnen geöffneten Editor aus.
Wenn Sie "Pip Freeze" ausführen und nur "wsgiref" angezeigt wird, ist die Umgebungskonstruktion abgeschlossen.
Da es vom System-Pip isoliert ist, können Sie die erforderlichen Module frei pip-installieren.
.
├── .gitignore
├── LICENSE
├── MANIFEST.in
├── README.md
├── mymodule.py
├── setup.py
└── tests
└── myplugin_test.py
.gitignore
Fügen Sie basierend auf Pythons .gitignore das env-Verzeichnis hinzu, wenn Sie virtualenv verwenden, und fügen Sie .direnv hinzu, wenn Sie direnv verwenden. gitignore/Python.gitignore
README.md
Eigentlich ist es besser, restructuredText zu verwenden, der mit PyPI formatiert und angezeigt wird, anstatt Markdown.
setup.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import with_statement
from setuptools import setup
with open("README.md") as f:
long_description = f.read()
setup(
name="mymodule",
version="0.1.0",
description="hogehoge.",
long_description=long_description,
author="yourid",
author_email="youremail",
url="yoururl",
py_modules=["mymodule"],
include_package_data=True,
install_requires=["Flask"],
tests_require=["nose"],
license="MIT",
keywords="",
zip_safe=False,
classifiers=[]
)
py_modules gibt den Dateinamen des zu veröffentlichenden Moduls an. install_requires und tests_require schreiben abhängige Module aus. Abhängig vom Artikel kann hier "pip freeze" angegeben werden, aber es ist besser zu schreiben, ohne die Version manuell anzugeben, da es bis zur Version angegeben wird und wie eine Abhängigkeitshölle aussieht. classifiers wird aus [hier] ausgewählt (https://pypi.python.org/pypi?%3Aaction=list_classifiers).
MANIFEST.in
Standardmäßig sind nur Python-Dateien im Modul enthalten, daher ist dies erforderlich, um spezielle Textdateien einzuschließen. Schreiben Sie diesmal "include README.md", um README.md einzuschließen. Wenn Sie anforderungs.txt vorbereiten, müssen Sie diese auch hier beschreiben.
mymodule.py
Modulkörper. Schreiben Sie entsprechend.
tests/
Modultests. Schreiben Sie entsprechend. Schreib ordentlich.
Verwenden Sie die Nase. Geben Sie mit "Pip Install Nase". Die Ausführung ist "Nosetests"
Registrieren Sie sich bei Test PyPI und PyPI. Erstellen Sie eine .pypirc-Datei in Ihrem Home-Verzeichnis und schreiben Sie die Registrierungsinformationen.
[distutils]
index-servers =
pypi
pypitest
[pypi]
repository: https://pypi.python.org/pypi
username: {{Nutzername}}
password: {{Passwort}}
[pypitest]
repository: https://testpypi.python.org/pypi
username: {{Nutzername}}
password: {{Passwort}}
Sobald das Modul abgeschlossen und der Test abgeschlossen ist, registrieren Sie python setup.py -r https: // testpypi.python.org / pypi
, um das Paket zu registrieren, und python setup.py sdist upload -r https: // Registrieren Sie sich bei Test PyPI unter testpypi.python.org / pypi
. Da es sich um eine Testseite handelt, können Sie sich immer mehr registrieren und testen.
Wenn es ohne Probleme registriert ist, können Sie es mit pip install --index-url https: // testpypi.python.org / simple / mymodule
installieren.
Nachdem Sie getestet haben, ob es ordnungsgemäß mit Python auf dem System installiert werden kann, importieren und verwenden Sie es usw., registrieren Sie es im Produktions-PyPI.
Registrieren Sie das Modul in Production PyPI mit python setup.py register
Sie können Module mit "python setup.py sdist upload" in das Produktions-PyPI hochladen.
ich habe das gemacht airtoxin/plugin-loader
Recommended Posts