A simple script to upload a PIP package
First Published: .
If you want to create a package and distribute it like through pip in record time, you can customize my script from cmemgzip for Ubuntu 20.04.
Here is the official documentation if you want to do everything manually:
https://packaging.python.org/tutorials/packaging-projects
Here is the script customized for Test Environment.
You’ll need to create a Test account in test.pypi.org
#!/bin/bash
PACKAGE="cmemgzip-test"
mkdir $PACKAGE
mkdir $PACKAGE/src
mkdir $PACKAGE/src/$PACKAGE
mkdir $PACKAGE/tests
cp LICENSE $PACKAGE/
echo "[build-system]" > $PACKAGE/pyproject.toml
echo "requires = [" >> $PACKAGE/pyproject.toml
echo ' "setuptools>=42",' >> $PACKAGE/pyproject.toml
echo ' "wheel"' >> $PACKAGE/pyproject.toml
echo "]" >> $PACKAGE/pyproject.toml
echo 'build-backend = "setuptools.build_meta"' >> $PACKAGE/pyproject.toml
cat <<EOF > $PACKAGE/setup.cfg
[metadata]
name = cmemgzip
version = 0.4.1
author = Carles Mateo
author_email = cmemgzip@carlesmateo.com
description = Compresses files in memory and replaces the original by a .gz file when there is no space on drive.
long_description = file: README.md
long_description_content_type = text/markdown
url = https://gitlab.com/carles.mateo/cmemgzip
project_urls =
Bug Tracker = https://gitlab.com/carles.mateo/cmemgzip/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
EOF
cp README.md $PACKAGE/
cp manual-cmemgzip.pdf $PACKAGE/
cp cmemgzip.py $PACKAGE/src/$PACKAGE/
touch $PACKAGE/src/$PACKAGE/__init__.py
cp test_*.py $PACKAGE/tests/
python3 -m pip install --upgrade build
# Install dependencies
sudo apt-get install python3.8-venv
python3 -m pip install --user --upgrade twine
echo
echo "Entering into directory $PACKAGE"
cd $PACKAGE
echo
echo "Generating distribution binaries"
python3 -m build
# Create account in: https://test.pypi.org/manage/account/
# Create API Token
# https://test.pypi.org/manage/account/
echo
echo "Going to upload the packages. Use your username and password"
echo
python3 -m twine upload --repository testpypi dist/cmemgzip*
The changes for the script to production are just a different package name, and last line:
python3 -m twine upload --repository pypi dist/cmemgzip*
Obviously you’ll need to use credentials for Production.
Rules for writing a Comment