2π
β
I nailed it with install_requires
option in setup.py
We also have tests_require
option and an extras_require
directive which all goes to setuptools.setup()
if you are using distribute.
install_requires
andextras_require
both are a list of requirements (packages).extras_require
is a dictionary with βtestingβ, βdocβ etc., are keys and a list of requirements as list.
These are added into distribute in version 0.5a4
Relevant links:
π€Arun Karunagath
2π
-
Project A: (with internal app: c and external apps: b):
# Directory Tree: A βββ setup.py βββ a βΒ Β βββ apps # internal dependencies βΒ Β β βββ c β β β βββ models.py β β β βββ ... β β β βββ app.py β β β βββ __init__.py βΒ Β β βββ __init__.py βΒ Β βββ core # core library β β βββ __init__.py β β βββ whatever.py β βββ ... βΒ Β βββ __init__.py # βββ ... βββ requirements.pip
# File: A/requirements.pip # external dependencies: b b>=0.1,<0.2
# File: A/setup.py setup( name="a", install_requires=["B",], # External Dependency ... )
# File: A/a/__init__.py # to be added into INSTALLED_APPS later CORE_APPS = [ "B", # external apps "a.apps.C", # internal apps ] def get_core_apps(): return CORE_APPS
Project A may be designed as a framework/library without implementation. Thus it does not have
wsgi.py
,manage.py
, etcβ¦. But Project A could provide an example project (sandbox or demo project). -
Project D (Django Project): (with app: a)
# File: D/requirements.pip a>=0.1<0.2
# File: D/d/settings.py import a INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # ... ] + a.get_core_apps()
Project D is an implementation of Project A. Thus it may contains
settings.py
,wsgi.py
, etcβ¦.
π€Yeo
Source:stackexchange.com