Что у меня есть:
локальные файлы Python3, которые я хочу превратить в модуль test_module
test_module
папка, содержащая пустой __init__.py
, setup.py
файл (см. Ниже) и подкаталоги с несколькими исходными файлами
Что я хочу:
постоянно работают и улучшаются test_module
локально
имеют простой способ установки test_module
и всех его зависимостей локально в моем собственном виртуальномокружение (созданное с использованием python3 -m venv my_environment
)
запускать файлы, использующие модуль через python myexample.py
, без необходимости настраивать мою локальную переменную PYTHONPATH при каждом входе или выходеmy_environment
делятся своим кодом на python с другими с помощью git и позволяют им устанавливать свой код локально на своих машинах, используя ту же процедуру (настолько простую, насколько это возможно)
узнайте лучшие практики по созданию моего собственного модуля
Как я делаюНа данный момент:
pip freeze > requirements.txt
и pip install -r requirements.txt
для установки зависимостей
добавление export PYTHONPATH="${PYTHONPATH}:."
к my_environment/bin/activate
, чтобы иметь мой собственный модуль в пути поиска (как найдено здесь: Как настроить ваш pythonpath в уже созданном virtualenv? )
I 'Хотелось бы узнать, есть ли «более чистые» решения, основанные на setup.py
, возможно, включающие что-то вроде pip install ./test_module
или подобное, которое заботится о 2.-3.
Мой текущий файл setup.py
выглядит следующим образом
from setuptools import setup
setup(
name='test_module',
version='0.1',
description='Some really good stuff, that I am still working on',
author='Bud Spencer',
author_email='bud.spencer@stackoverflow.com',
packages=['test_module'], # same as name
install_requires=['numpy', 'scipy', 'sklearn', 'argparse'], # external packages as dependencies
)