Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##################################################################
- How to Create and Publish a Simple Hello World Python Package to PyPI (helloworldfx)
- To install the package directly (pypi):
- pip install hellowordlfx
- ##################################################################
- Join our telegram channel for more : https://t.me/LinuxClassesEFXTv
- ##################################################################
- ## 1. Bash Script to Create the Project Structure
- helloworldfx/
- ├── helloworldfx/
- │ ├── __init__.py
- │ ├── __main__.py
- │ └── app.py
- ├── setup.py
- └── README.md
- ################################################################## BashFileStarts
- #!/bin/bash
- PROJECT_NAME="helloworldfx"
- mkdir -p $PROJECT_NAME/$PROJECT_NAME/templates
- cd $PROJECT_NAME || exit
- # Create __init__.py with version
- echo '__version__ = "0.1.0"' > $PROJECT_NAME/__init__.py
- # Create __main__.py to allow python -m helloworldfx
- cat << EOF > $PROJECT_NAME/__main__.py
- from .app import main
- if __name__ == "__main__":
- main()
- EOF
- # Create app.py with Hello World Flask app
- cat << EOF > $PROJECT_NAME/app.py
- #!/usr/bin/env python3
- from flask import Flask
- app = Flask(__name__)
- @app.route("/")
- def hello():
- return "Hello, World!"
- def main():
- app.run(debug=True)
- if __name__ == "__main__":
- main()
- EOF
- # Create setup.py
- cat << EOF > setup.py
- from setuptools import setup, find_packages
- setup(
- name="$PROJECT_NAME",
- version="0.1.0",
- packages=find_packages(),
- install_requires=["Flask"],
- entry_points={
- "console_scripts": [
- "$PROJECT_NAME = $PROJECT_NAME.app:main",
- ],
- },
- include_package_data=True,
- )
- EOF
- # Create README.md
- echo "# $PROJECT_NAME" > README.md
- # Create LICENSE (MIT license example)
- cat << EOF > LICENSE
- MIT License
- Copyright (c) $(date +%Y) Your Name
- Permission is hereby granted, free of charge, to any person obtaining a copy
- ...
- EOF
- ################################################################## BashFileEnds
- $ bash create_helloworldfx.sh
- ## 2. Create your PyPI API Token and .pypirc File
- Generate PyPI API Token:
- 1. Log into https://pypi.org/manage/account/token/
- 2. Create a new token scoped to your project (helloworldfx) or global access.
- 3. Copy the generated token string.
- Create .pypirc file in your home directory for secure authentication:
- nano ~/.pypirc
- [distutils]
- index-servers =
- pypi
- [pypi]
- username = __token__
- password = <YOUR_PYPI_TOKEN>
- chmod 600 ~/.pypirc
- 3. Build and Upload Your Package #
- Note: If you wish to push v2 you need to change the project version in setup.py. Example: present version is (version="0.1.0",) new update will have (version="0.1.1",).
- Make sure you are in your project root (where setup.py is):
- python3 -m pip install --upgrade build twine
- python3 -m build
- python3 -m twine upload dist/*
- # Update update version 0.1.1
- nano setup.py #change version
- rm -rf dist build linkgenfx.egg-info
- python3 -m pip install --upgrade build twine
- python3 -m build
- python3 -m twine upload dist/*
- 4. Test Your Package
- pip3 install helloworldfx
- helloworldfx
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement