Вы можете сделать это с setuptools
примером хорошего setup.py
(скажем, ваш пакет требует панд и numpy):
import setuptools
setuptools.setup(
name='myscript',
version='1.0',
scripts=['./scripts/myscript'],
author='Me',
description='This runs my script which is great.',
packages=['lib.myscript']
install_requires=[
'setuptools',
'pandas >= 0.22.0',
'numpy >= 1.16.0'
],
python_requires='>=3.5'
)
Ваш каталог должен быть настроен какследует:
[dkennetz package]$ ls
lib scripts setup.py
внутри lib будет:
[dkennetz package]$ ls lib
myscript
внутри myscript
будет:
[dkennetz package]$ ls lib/myscript
__main__.py
__init__.py
helper_module1.py
helper_module2.py
main будет использоваться для вызова вашей функциии делайте все, что вы хотите.
внутри скриптов будет:
[dkennetz package]$ ls scripts
myscript
, а содержимое myscript
будет:
#!/usr/bin/env bash
if [[ ! $@ ]]; then
python3 -m myscript -h
else
python3 -m myscript $@
fi
, затем запуститьвы делаете: python setup.py install
, который установит вашу программу и все зависимости, которые вы включили в install_requires=[]
в вашем файле setup.py, и установите myscript
в качестве модуля командной строки:
[dkennetz ~]$ myscript