I had problems creating a package with both Python code, and a extension module written in c (shipped as a load module .so object in Unix Services). The problems were that the package name was dependant on the name of the hardware and the level of the operating system. To produce a package for z/OS in general, I would need to build on every z/OS hardware.
Removing the C code made it much easier to package.
The setup.py file for pure Python
import setuptools from setuptools import setup, Extension import sysconfig bindings_mode = 1 version = '1.12.0' setup(name = 'pymqi', version = version, description = 'Python IBM MQI Extension for IBM MQ.', long_description= 'PyMQI is a Python library ', author='Dariusz Suchojad', author_email='pymqi@m.zato.io', url='https://dsuch.github.io/pymqi/', download_url='https://pypi.python.org/pypi/pymqi', platforms='OS/390', package_dir = {'': 'code'}, packages = ['pymqi'], license='Python Software Foundation License', keywords=('pymqi IBM MQ WebSphere WMQ MQSeries IBM middleware'), python_requires='>=3', classifiers = [ 'Development Status :: 5 - Production/Stable', 'License :: OSI Approved :: Python Software Foundation License', 'Intended Audience :: Developers', 'Natural Language :: English', 'Operating System :: OS Independent', 'Programming Language :: C', 'Programming Language :: Python', 'Topic :: Software Development :: Libraries :: Python Modules', 'Topic :: Software Development :: Object Brokering', ], py_modules = ['pymqi.CMQC', 'pymqi.CMQCFC', 'pymqi.CMQXC', 'pymqi.CMQZC'], )
Where the py_modules were in ./code/pymqi/ as CMQC.py etc.
Install the wheel package and build it
python3 setup.py bdist_wheel
This gave a package
./dist/pymqi-1.12.0-py3-none-any.whl
Which can be installed on any z/OS system.
setup tools (and so bdist_wheel) has a web page here.
Uninstall it
I used
python3 -m pip –verbose uninstall wheel
to uninstall it
List what is installed
python3 -m pip –verbose list
This gave
Package Version Location Installer ------------ ------- ---------------------------------------------------------- --------- cffi 1.14.0 /Z24C/usr/lpp/IBM/cyp/v3r8/pyz/lib/python3.8/site-packages cryptography 2.8 /Z24C/usr/lpp/IBM/cyp/v3r8/pyz/lib/python3.8/site-packages ebcdic 1.1.1 /Z24C/usr/lpp/IBM/cyp/v3r8/pyz/lib/python3.8/site-packages pip numpy 1.18.2 /Z24C/usr/lpp/IBM/cyp/v3r8/pyz/lib/python3.8/site-packages pip pip 20.2.1 /Z24C/usr/lpp/IBM/cyp/v3r8/pyz/lib/python3.8/site-packages pip pycparser 2.20 /Z24C/usr/lpp/IBM/cyp/v3r8/pyz/lib/python3.8/site-packages pip setuptools 47.1.0 /Z24C/usr/lpp/IBM/cyp/v3r8/pyz/lib/python3.8/site-packages pip six 1.15.0 /Z24C/usr/lpp/IBM/cyp/v3r8/pyz/lib/python3.8/site-packages wheel 0.37.1 /u/tmp/pymqi2/lib/python3.8/site-packages pip zos-util 1.0.0 /Z24C/usr/lpp/IBM/cyp/v3r8/pyz/lib/python3.8/site-packages
so we can see the wheel package was installed in my user directory.
Without the –verbose just package and version were displayed, no location or installer.