i wrote a little module and i would like to know what are the basic steps to package it in order to send it to pypi :
I recommend reading The Hitchhiker's Guide to Packaging . Specifically, you should look at the Quick Start section , which describes how to:
- Lay out your project
- Describe your project
- Create your first release
- Register your package with the Python Package Index (PyPI)
- Upload your release, then grab your towel and save the Universe!
You should also look at the Current State of Packaging in the Introduction to Packaging section , as this helps untangle some of the confusion surrounding setuptools, distutils, distutils2, and distribute.
The excerpt below is from PEP8 , which answers your question about how to name files:
Modules should have short, all-lowercase names. Underscores can be used in the module name if it improves readability. Python packages should also have short, all-lowercase names, although the use of underscores is discouraged.
Since module names are mapped to file names, and some file systems are case insensitive and truncate long names, it is important that module names be chosen to be fairly short -- this won't be a problem on Unix, but it may be a problem when the code is transported to older Mac or Windows versions, or DOS.
an example is always the best way to see how to do:
Maybe this CheeseShopTutorial is of help for you. From there:
Submitting Packages to the Package Index
If you have some Python modules or packages that you would like to share with the Python community, we'd love to have them included in the Python Package Index! First, if you haven't done so, you will want to get your project organized. You might follow the guidelines at ProjectFileAndDirectoryLayout. After that, you'll want to read the Python documentation regarding creating distributions: http://docs.python.org/distutils/index.html .
You can also check Writing a Package in Python by Tarek Ziadé from Tarek's book "Expert Python Programming" where questions about development and distribution are addressed in great detail
Matthew Rankin's answer tells you how to organize your project file heirarchy, but I find myself having to look up the commands to execute every time I want to update a project on PyPI. So here they are:
As described on the PyPi site :
setup.py
file ( here's an example ) python setup.py sdist python setup.py bdist_wheel python setup.py register twine upload dist/*
Look for your package on the PyPi site: https://pypi.python.org/pypi?%3Aaction=index
On another machine try running: pip install [your package name]
Most important thing is prepare your setup.py
properly. Then:
setup.py sdist bdist_wheel
to generate distribution archives to dist/
folder twine upload dist/*
to upload the archives to PyPi (with your PyPi username/password) Here is an example of setup.py
:
from setuptools import setup, find_packages
with open('README.md') as readme_file:
README = readme_file.read()
with open('HISTORY.md') as history_file:
HISTORY = history_file.read()
setup_args = dict(
name='elastictools',
version='0.1.2',
description='Useful tools to work with Elastic stack in Python',
long_description_content_type="text/markdown",
long_description=README + '\n\n' + HISTORY,
license='MIT',
packages=find_packages(),
author='Thuc Nguyen',
author_email='gthuc.nguyen@gmail.com',
keywords=['Elastic', 'ElasticSearch', 'Elastic Stack', 'Python 3', 'Elastic 6'],
url='https://github.com/ncthuc/elastictools',
download_url='https://pypi.org/project/elastictools/'
)
install_requires = [
'elasticsearch>=6.0.0,<7.0.0',
'jinja2'
]
if __name__ == '__main__':
setup(**setup_args, install_requires=install_requires)
You can find more detail tutorial here: https://medium.com/@thucnc/how-to-publish-your-own-python-package-to-pypi-4318868210f9
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.