aboutsummaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
Diffstat (limited to 'www')
-rw-r--r--www/butterfly/Makefile2
-rw-r--r--www/mod_wsgi4/Makefile2
-rw-r--r--www/onionbalance/Makefile2
-rw-r--r--www/py-Tenjin/Makefile2
-rw-r--r--www/py-WebError/Makefile2
-rw-r--r--www/py-WebFlash/Makefile2
-rw-r--r--www/py-arxiv/Makefile2
-rw-r--r--www/py-azure-common/Makefile2
-rw-r--r--www/py-azure-storage/Makefile2
-rw-r--r--www/py-beaker/Makefile2
-rw-r--r--www/py-betamax/Makefile2
-rw-r--r--www/py-biscuits/Makefile2
-rw-r--r--www/py-bjoern/Makefile2
-rw-r--r--www/py-bleach/Makefile2
-rw-r--r--www/py-boto3/Makefile2
-rw-r--r--www/py-bottle-cork/Makefile2
-rw-r--r--www/py-bottle/Makefile2
-rw-r--r--www/py-cachecontrol/Makefile2
-rw-r--r--www/py-cachelib/Makefile2
-rw-r--r--www/py-caldav/Makefile2
-rw-r--r--www/py-cheroot/Makefile2
-rw-r--r--www/py-cherrypy/Makefile2
-rw-r--r--www/py-cookies/Makefile2
-rw-r--r--www/py-crossplane/Makefile2
-rw-r--r--www/py-css-parser/Makefile2
-rw-r--r--www/py-csscompressor/Makefile2
-rw-r--r--www/py-cssmin/Makefile2
-rw-r--r--www/py-cssselect/Makefile2
-rw-r--r--www/py-cssutils/Makefile2
-rw-r--r--www/py-django-appconf/Makefile2
-rw-r--r--www/py-django-bakery/Makefile2
-rw-r--r--www/py-django-bootstrap3/Makefile2
-rw-r--r--www/py-django-bootstrap4/Makefile2
-rw-r--r--www/py-django-contrib-comments/Makefile2
-rw-r--r--www/py-django-countries/Makefile2
-rw-r--r--www/py-django-formtools/Makefile2
-rw-r--r--www/py-django-guardian/Makefile2
-rw-r--r--www/py-django-jsonfield/Makefile2
-rw-r--r--www/py-django-libsass/Makefile2
-rw-r--r--www/py-django-markwhat/Makefile2
-rw-r--r--www/py-django-mezzanine-filebrowser/Makefile2
-rw-r--r--www/py-django-mezzanine-grappelli/Makefile2
-rw-r--r--www/py-django-otp-yubikey/Makefile2
-rw-r--r--www/py-django-otp/Makefile2
-rw-r--r--www/py-django-pglocks/Makefile2
-rw-r--r--www/py-django-picklefield/Makefile2
-rw-r--r--www/py-django-pipeline/Makefile2
-rw-r--r--www/py-django-post_office/Makefile2
-rw-r--r--www/py-django-ranged-response/Makefile2
-rw-r--r--www/py-django-simple-captcha/Makefile2
-rw-r--r--www/py-django-statici18n/Makefile2
-rw-r--r--www/py-django-staticinline/Makefile2
-rw-r--r--www/py-django-storages/Makefile2
-rw-r--r--www/py-django-voting/Makefile2
-rw-r--r--www/py-django-webpack-loader/Makefile2
-rw-r--r--www/py-django111/Makefile7
-rw-r--r--www/py-django_compressor/Makefile8
-rw-r--r--www/py-djangorestframework-csv/Makefile2
-rw-r--r--www/py-djangorestframework-filters/Makefile2
-rw-r--r--www/py-djangorestframework-xml/Makefile2
-rw-r--r--www/py-dtflickr/Makefile2
-rw-r--r--www/py-fake-useragent/Makefile2
-rw-r--r--www/py-falcon/Makefile2
-rw-r--r--www/py-feedgenerator/Makefile2
-rw-r--r--www/py-flask-admin/Makefile2
-rw-r--r--www/py-flask-apscheduler/Makefile2
-rw-r--r--www/py-flask-assets/Makefile2
-rw-r--r--www/py-flask-bootstrap/Makefile2
-rw-r--r--www/py-flask-cache/Makefile2
-rw-r--r--www/py-flask-collect/Makefile2
-rw-r--r--www/py-flask-compress/Makefile2
-rw-r--r--www/py-flask-cors/Makefile2
-rw-r--r--www/py-flask-flatpages/Makefile2
-rw-r--r--www/py-flask-json/Makefile2
-rw-r--r--www/py-flask-login/Makefile2
-rw-r--r--www/py-flask-migrate/Makefile2
-rw-r--r--www/py-flask-moment/Makefile2
-rw-r--r--www/py-flask-oauthlib/Makefile2
-rw-r--r--www/py-flask-principal/Makefile2
-rw-r--r--www/py-flask-restful/Makefile2
-rw-r--r--www/py-flask-script/Makefile2
-rw-r--r--www/py-flask-sockets/Makefile2
-rw-r--r--www/py-flask-uploads/Makefile2
-rw-r--r--www/py-flask-wtf/Makefile2
-rw-r--r--www/py-flask/Makefile2
-rw-r--r--www/py-forcediphttpsadapter/Makefile2
-rw-r--r--www/py-formencode/Makefile2
-rw-r--r--www/py-fqdn/Makefile2
-rw-r--r--www/py-frozen-flask/Makefile2
-rw-r--r--www/py-gandi.cli/Makefile2
-rw-r--r--www/py-gevent-websocket/Makefile2
-rw-r--r--www/py-google-api-core/Makefile2
-rw-r--r--www/py-google-api-python-client/Makefile2
-rw-r--r--www/py-google-cloud-dlp/Makefile2
-rw-r--r--www/py-google-cloud-vision/Makefile2
-rw-r--r--www/py-google-resumable-media/Makefile2
-rw-r--r--www/py-grequests/Makefile2
-rw-r--r--www/py-grip/Makefile2
-rw-r--r--www/py-gunicorn/Makefile2
-rw-r--r--www/py-h2/Makefile2
-rw-r--r--www/py-hpack/Makefile2
-rw-r--r--www/py-html5-parser/Makefile2
-rw-r--r--www/py-httmock/Makefile2
-rw-r--r--www/py-httplib2/Makefile2
-rw-r--r--www/py-hyper/Makefile2
-rw-r--r--www/py-hyperframe/Makefile2
-rw-r--r--www/py-hyperlink/Makefile2
-rw-r--r--www/py-imdbpy/Makefile2
-rw-r--r--www/py-inlinestyler/Makefile2
-rw-r--r--www/py-internetarchive/Makefile2
-rw-r--r--www/py-jonpy/Makefile2
-rw-r--r--www/py-lektor/Makefile2
-rw-r--r--www/py-lesscpy/Makefile2
-rw-r--r--www/py-libsass/Makefile2
-rw-r--r--www/py-livereload/Makefile2
-rw-r--r--www/py-mechanize/Makefile2
-rw-r--r--www/py-mwoauth/Makefile2
-rw-r--r--www/py-nevow/Makefile2
-rw-r--r--www/py-pafy/Makefile2
-rw-r--r--www/py-path-and-address/Makefile2
-rw-r--r--www/py-pelican/Makefile2
-rw-r--r--www/py-planet/Makefile2
-rw-r--r--www/py-praw/Makefile2
-rw-r--r--www/py-prawcore/Makefile2
-rw-r--r--www/py-priority/Makefile2
-rw-r--r--www/py-puppetboard/Makefile2
-rw-r--r--www/py-py-restclient/Makefile2
-rw-r--r--www/py-pyjwt/Makefile2
-rw-r--r--www/py-pyocclient/Makefile2
-rw-r--r--www/py-python-dotenv/Makefile2
-rw-r--r--www/py-python-multipart/Makefile2
-rw-r--r--www/py-pyweblib/Makefile2
-rw-r--r--www/py-recaptcha/Makefile2
-rw-r--r--www/py-requests-aws4auth/Makefile2
-rw-r--r--www/py-requests-cache/Makefile2
-rw-r--r--www/py-requests-file/Makefile2
-rw-r--r--www/py-requests-futures/Makefile2
-rw-r--r--www/py-requests-mock/Makefile2
-rw-r--r--www/py-requests-oauthlib/Makefile2
-rw-r--r--www/py-requests-toolbelt/Makefile2
-rw-r--r--www/py-requests-unixsocket/Makefile2
-rw-r--r--www/py-requests_ntlm/Makefile2
-rw-r--r--www/py-restclient/Makefile2
-rw-r--r--www/py-rfc3986/Makefile2
-rw-r--r--www/py-rfc3987/Makefile2
-rw-r--r--www/py-rollbar/Makefile2
-rw-r--r--www/py-rules/Makefile2
-rw-r--r--www/py-scrapy/Makefile2
-rw-r--r--www/py-secure-cookie/Makefile2
-rw-r--r--www/py-selector/Makefile2
-rw-r--r--www/py-selenium/Makefile2
-rw-r--r--www/py-slimit/Makefile2
-rw-r--r--www/py-slumber/Makefile2
-rw-r--r--www/py-sockjs-tornado/Makefile2
-rw-r--r--www/py-spyne/Makefile2
-rw-r--r--www/py-sseclient/Makefile2
-rw-r--r--www/py-tornado4/Makefile2
-rw-r--r--www/py-treq/Makefile2
-rw-r--r--www/py-turbogears2/Makefile2
-rw-r--r--www/py-tvdb_api/Makefile2
-rw-r--r--www/py-txrequests/Makefile2
-rw-r--r--www/py-urlgrabber/Makefile2
-rw-r--r--www/py-urlman/Makefile2
-rw-r--r--www/py-urlobject/Makefile2
-rw-r--r--www/py-user_agent/Makefile2
-rw-r--r--www/py-utidylib/Makefile2
-rw-r--r--www/py-w3lib/Makefile2
-rw-r--r--www/py-waitress/Makefile2
-rw-r--r--www/py-webassets/Makefile2
-rw-r--r--www/py-webob/Makefile2
-rw-r--r--www/py-websocket-client/Makefile2
-rw-r--r--www/py-webunit/Makefile2
-rw-r--r--www/py-werkzeug/Makefile2
-rw-r--r--www/py-wfuzz/Makefile2
-rw-r--r--www/py-whitenoise/Makefile2
-rw-r--r--www/py-wikitools/Makefile2
-rw-r--r--www/py-ws4py/Makefile2
-rw-r--r--www/py-wsaccel/Makefile2
-rw-r--r--www/py-wsgidav/Makefile2
-rw-r--r--www/unit-python/Makefile2
-rw-r--r--www/uwsgi/Makefile2
-rw-r--r--www/uwsgitop/Makefile2
182 files changed, 186 insertions, 189 deletions
diff --git a/www/butterfly/Makefile b/www/butterfly/Makefile
index dcb81e2cd2b1..f38808ccd98f 100644
--- a/www/butterfly/Makefile
+++ b/www/butterfly/Makefile
@@ -16,7 +16,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}openssl>0:security/py-openssl@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}tornado>0:www/py-tornado@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}libsass>0:www/py-libsass@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
# Can't use concurrent here, it changes ETCDIR, and breaks post-install.
USE_PYTHON= autoplist distutils optsuffix
NO_ARCH= yes
diff --git a/www/mod_wsgi4/Makefile b/www/mod_wsgi4/Makefile
index 504e2dfa1e48..abe93762369c 100644
--- a/www/mod_wsgi4/Makefile
+++ b/www/mod_wsgi4/Makefile
@@ -11,7 +11,7 @@ COMMENT= Python WSGI adapter module for Apache
LICENSE= APACHE20
-USES= apache:2.4+ gettext python
+USES= apache:2.4+ gettext python:3.6+
USE_PYTHON= flavors
GNU_CONFIGURE= yes
diff --git a/www/onionbalance/Makefile b/www/onionbalance/Makefile
index df80547bd85d..6bfaa5a96764 100644
--- a/www/onionbalance/Makefile
+++ b/www/onionbalance/Makefile
@@ -21,7 +21,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}future>=0:devel/py-future@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}stem>=0:security/py-stem@${PY_FLAVOR} \
tor:security/tor
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-Tenjin/Makefile b/www/py-Tenjin/Makefile
index e4979d6835c9..a338c1a0b0af 100644
--- a/www/py-Tenjin/Makefile
+++ b/www/py-Tenjin/Makefile
@@ -13,7 +13,7 @@ LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/MIT-LICENSE
NO_ARCH= yes
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
DOCSDIR= ${PREFIX}/share/doc/${PKGNAMEPREFIX}${PORTNAME}
diff --git a/www/py-WebError/Makefile b/www/py-WebError/Makefile
index 9a48611443c2..48ee8274d998 100644
--- a/www/py-WebError/Makefile
+++ b/www/py-WebError/Makefile
@@ -18,7 +18,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Paste>=1.7:www/py-paste@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Tempita>=0.3:textproc/py-Tempita@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}webob>=0.9.6.1:www/py-webob@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-WebFlash/Makefile b/www/py-WebFlash/Makefile
index d2e100e59be6..dd31df9c291d 100644
--- a/www/py-WebFlash/Makefile
+++ b/www/py-WebFlash/Makefile
@@ -13,7 +13,7 @@ COMMENT= Library to display flash messages in python web applications
LICENSE= MIT
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-arxiv/Makefile b/www/py-arxiv/Makefile
index 69e549a23d0c..bd8f225e5d21 100644
--- a/www/py-arxiv/Makefile
+++ b/www/py-arxiv/Makefile
@@ -17,7 +17,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}feedparser>=0:textproc/py-feedparser@${PY_FL
TEST_DEPENDS= ${PYNUMPY} \
${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-azure-common/Makefile b/www/py-azure-common/Makefile
index 5da27213afad..fda5ac4a8b5b 100644
--- a/www/py-azure-common/Makefile
+++ b/www/py-azure-common/Makefile
@@ -11,7 +11,7 @@ COMMENT= Microsoft Azure common code
LICENSE= MIT
-USES= azurepy python zip
+USES= azurepy python:3.6+ zip
USE_PYTHON= autoplist concurrent distutils
.include <bsd.port.mk>
diff --git a/www/py-azure-storage/Makefile b/www/py-azure-storage/Makefile
index b75b6ea8b813..83533b686fc0 100644
--- a/www/py-azure-storage/Makefile
+++ b/www/py-azure-storage/Makefile
@@ -16,7 +16,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}azure-common>0:www/py-azure-common@${PY_FLAV
${PYTHON_PKGNAMEPREFIX}dateutil>0:devel/py-dateutil@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
.include <bsd.port.mk>
diff --git a/www/py-beaker/Makefile b/www/py-beaker/Makefile
index 6ce0d8397a14..e20ffb185c17 100644
--- a/www/py-beaker/Makefile
+++ b/www/py-beaker/Makefile
@@ -13,7 +13,7 @@ COMMENT= Session and Caching library with WSGI Middleware
LICENSE= BSD3CLAUSE
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-betamax/Makefile b/www/py-betamax/Makefile
index 41a38770ed43..1b5bb3501f61 100644
--- a/www/py-betamax/Makefile
+++ b/www/py-betamax/Makefile
@@ -14,7 +14,7 @@ LICENSE= APACHE20
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=2.0:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-biscuits/Makefile b/www/py-biscuits/Makefile
index e669f9d4b53a..751504de9c04 100644
--- a/www/py-biscuits/Makefile
+++ b/www/py-biscuits/Makefile
@@ -14,7 +14,7 @@ LICENSE= MIT
BUILD_DEPENDS= ${PY_PATHLIB}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
post-install:
diff --git a/www/py-bjoern/Makefile b/www/py-bjoern/Makefile
index 6e30738b1812..87ed9f7caf99 100644
--- a/www/py-bjoern/Makefile
+++ b/www/py-bjoern/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libev.so:devel/libev
-USES= localbase python
+USES= localbase python:3.6+
USE_PYTHON= autoplist concurrent distutils
LDFLAGS+= -lc
diff --git a/www/py-bleach/Makefile b/www/py-bleach/Makefile
index 8c1dbb6a0cbc..a60e7a71a07b 100644
--- a/www/py-bleach/Makefile
+++ b/www/py-bleach/Makefile
@@ -18,7 +18,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>=1.9.0:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>=3.0.0:devel/py-pytest@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-boto3/Makefile b/www/py-boto3/Makefile
index 7cb01aba773b..7b6dbe2a246d 100644
--- a/www/py-boto3/Makefile
+++ b/www/py-boto3/Makefile
@@ -20,7 +20,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}nose>0:devel/py-nose@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mock>0:devel/py-mock@${PY_FLAVOR}
# Actually 2.6-2.7,3.3-3.7
-USES= python
+USES= python:3.6+
USE_GITHUB= yes # tests missing from PyPI sdist
USE_PYTHON= autoplist distutils
diff --git a/www/py-bottle-cork/Makefile b/www/py-bottle-cork/Makefile
index aeb17d691ba7..042d780231c5 100644
--- a/www/py-bottle-cork/Makefile
+++ b/www/py-bottle-cork/Makefile
@@ -14,7 +14,7 @@ LICENSE= LGPL3
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}bottle>0:www/py-bottle@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}beaker>0:www/py-beaker@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_GITHUB= yes
GH_ACCOUNT= FedericoCeratto
diff --git a/www/py-bottle/Makefile b/www/py-bottle/Makefile
index f4c372bc8d38..41c5a029b8e7 100644
--- a/www/py-bottle/Makefile
+++ b/www/py-bottle/Makefile
@@ -13,7 +13,7 @@ COMMENT= Fast and simple WSGI-framework for small web-applications
LICENSE= MIT
-USES= python
+USES= python:3.6+
NO_ARCH= yes
diff --git a/www/py-cachecontrol/Makefile b/www/py-cachecontrol/Makefile
index 8665083fb6c9..5087b5e219df 100644
--- a/www/py-cachecontrol/Makefile
+++ b/www/py-cachecontrol/Makefile
@@ -15,7 +15,7 @@ LICENSE= BSD2CLAUSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}msgpack>=0.5.2:devel/py-msgpack@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
REINPLACE_ARGS= -i ''
diff --git a/www/py-cachelib/Makefile b/www/py-cachelib/Makefile
index b0624952f210..96b99e91dc6f 100644
--- a/www/py-cachelib/Makefile
+++ b/www/py-cachelib/Makefile
@@ -14,7 +14,7 @@ COMMENT= Collection of cache libraries in the same API interface
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= localbase python
+USES= localbase python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-caldav/Makefile b/www/py-caldav/Makefile
index af4651e1d3aa..7fddaa389639 100644
--- a/www/py-caldav/Makefile
+++ b/www/py-caldav/Makefile
@@ -17,7 +17,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=2.3.0:www/py-requests@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}lxml>=3.6.0:devel/py-lxml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}vobject>=0.8.1:deskutils/py-vobject@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-cheroot/Makefile b/www/py-cheroot/Makefile
index 597583320aeb..9ecab7bd1661 100644
--- a/www/py-cheroot/Makefile
+++ b/www/py-cheroot/Makefile
@@ -17,7 +17,7 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=1.15.0:devel/py-setuptools
${PYTHON_PKGNAMEPREFIX}setuptools_scm_git_archive>=1.0:devel/py-setuptools_scm_git_archive@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>=1.11.0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-cherrypy/Makefile b/www/py-cherrypy/Makefile
index f6fe2dc5eae2..1697313f1a1d 100644
--- a/www/py-cherrypy/Makefile
+++ b/www/py-cherrypy/Makefile
@@ -28,7 +28,7 @@ OPTIONS_DEFINE= EXAMPLES
PORTEXAMPLES= *
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist concurrent
.include <bsd.port.options.mk>
diff --git a/www/py-cookies/Makefile b/www/py-cookies/Makefile
index 392f0c1c567c..b5281f9f30cb 100644
--- a/www/py-cookies/Makefile
+++ b/www/py-cookies/Makefile
@@ -14,7 +14,7 @@ LICENSE= MIT
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-crossplane/Makefile b/www/py-crossplane/Makefile
index 04a13bf06506..67dbbcdbcb42 100644
--- a/www/py-crossplane/Makefile
+++ b/www/py-crossplane/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
USE_GITHUB= yes
GH_ACCOUNT= nginxinc
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-css-parser/Makefile b/www/py-css-parser/Makefile
index 8baaad3b5f23..6636505997f8 100644
--- a/www/py-css-parser/Makefile
+++ b/www/py-css-parser/Makefile
@@ -17,7 +17,7 @@ LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LESSER
NO_ARCH= yes
USE_PYTHON= autoplist concurrent distutils
-USES= python
+USES= python:3.6+
USE_GITHUB= yes
GH_ACCOUNT= ebook-utils
diff --git a/www/py-csscompressor/Makefile b/www/py-csscompressor/Makefile
index 0736eca77ff7..09c9174ddab5 100644
--- a/www/py-csscompressor/Makefile
+++ b/www/py-csscompressor/Makefile
@@ -12,7 +12,7 @@ COMMENT= Python port of YUI CSS Compressor
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-cssmin/Makefile b/www/py-cssmin/Makefile
index 61f9bea8616b..d5834b513007 100644
--- a/www/py-cssmin/Makefile
+++ b/www/py-cssmin/Makefile
@@ -13,7 +13,7 @@ COMMENT= Python port of the YUI CSS compression algorithm
LICENSE= MIT
NO_ARCH= yes
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
.include <bsd.port.mk>
diff --git a/www/py-cssselect/Makefile b/www/py-cssselect/Makefile
index e076a974787d..2987cd59b073 100644
--- a/www/py-cssselect/Makefile
+++ b/www/py-cssselect/Makefile
@@ -14,7 +14,7 @@ COMMENT= Cssselect parses CSS3 Selectors and translates them to XPath 1.0
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-cssutils/Makefile b/www/py-cssutils/Makefile
index d94e6adb1522..d497d2a90250 100644
--- a/www/py-cssutils/Makefile
+++ b/www/py-cssutils/Makefile
@@ -17,7 +17,7 @@ LICENSE_COMB= dual
LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING
LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LESSER
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-django-appconf/Makefile b/www/py-django-appconf/Makefile
index 7f067c9cd607..554bc2a8a872 100644
--- a/www/py-django-appconf/Makefile
+++ b/www/py-django-appconf/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
NO_ARCH= yes
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-django-bakery/Makefile b/www/py-django-bakery/Makefile
index cb48ac81bdab..9a05df553406 100644
--- a/www/py-django-bakery/Makefile
+++ b/www/py-django-bakery/Makefile
@@ -16,7 +16,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>1.5.2:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}boto3>=1.4.4:www/py-boto3@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}fs2>=2.0.17:devel/py-fs2@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-django-bootstrap3/Makefile b/www/py-django-bootstrap3/Makefile
index 935759f7f0db..76e21616a10f 100644
--- a/www/py-django-bootstrap3/Makefile
+++ b/www/py-django-bootstrap3/Makefile
@@ -12,7 +12,7 @@ COMMENT= Bootstrap 3 support for Django projects
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-django-bootstrap4/Makefile b/www/py-django-bootstrap4/Makefile
index 1b8e96c44e11..b0686a78199b 100644
--- a/www/py-django-bootstrap4/Makefile
+++ b/www/py-django-bootstrap4/Makefile
@@ -12,7 +12,7 @@ COMMENT= Bootstrap 4 support for Django projects
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-django-contrib-comments/Makefile b/www/py-django-contrib-comments/Makefile
index 0535463b24fc..9b066717d4f4 100644
--- a/www/py-django-contrib-comments/Makefile
+++ b/www/py-django-contrib-comments/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django111>=0:www/py-django111@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-django-countries/Makefile b/www/py-django-countries/Makefile
index 8f1bb13484f5..fc76e69fb3a0 100644
--- a/www/py-django-countries/Makefile
+++ b/www/py-django-countries/Makefile
@@ -12,7 +12,7 @@ COMMENT= Provides country choices for use with django
LICENSE= BSD2CLAUSE
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-django-formtools/Makefile b/www/py-django-formtools/Makefile
index f362bc88e648..203ac29239c1 100644
--- a/www/py-django-formtools/Makefile
+++ b/www/py-django-formtools/Makefile
@@ -12,7 +12,7 @@ COMMENT= Bootstrap forms for django
LICENSE= MIT
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-django-guardian/Makefile b/www/py-django-guardian/Makefile
index ab49d2066fbd..e538f13edc2c 100644
--- a/www/py-django-guardian/Makefile
+++ b/www/py-django-guardian/Makefile
@@ -16,7 +16,7 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-runner>0:devel/py-pytest-runner@${P
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
NO_ARCH= yes
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-django-jsonfield/Makefile b/www/py-django-jsonfield/Makefile
index edb5fe9ad25c..932521cc8864 100644
--- a/www/py-django-jsonfield/Makefile
+++ b/www/py-django-jsonfield/Makefile
@@ -17,7 +17,7 @@ DEPRECATED= This port will be deleted in the future, please switch to use www/py
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django111>=0:www/py-django111@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-django-libsass/Makefile b/www/py-django-libsass/Makefile
index eb6b9e9eac1c..48d8950c5309 100644
--- a/www/py-django-libsass/Makefile
+++ b/www/py-django-libsass/Makefile
@@ -14,7 +14,7 @@ LICENSE= BSD3CLAUSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django_compressor>=1.3:www/py-django_compressor@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}libsass>=0.7.0:www/py-libsass@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-django-markwhat/Makefile b/www/py-django-markwhat/Makefile
index b6bc5870c390..b6fd63d6b05b 100644
--- a/www/py-django-markwhat/Makefile
+++ b/www/py-django-markwhat/Makefile
@@ -13,7 +13,7 @@ COMMENT= Collection of template filters that implement common markup languages
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-django-mezzanine-filebrowser/Makefile b/www/py-django-mezzanine-filebrowser/Makefile
index 5f5d1ecdca31..078511d5357f 100644
--- a/www/py-django-mezzanine-filebrowser/Makefile
+++ b/www/py-django-mezzanine-filebrowser/Makefile
@@ -14,7 +14,7 @@ COMMENT= Fork of django-filebrowser for Mezzanine CMS
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= gettext python
+USES= gettext python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-django-mezzanine-grappelli/Makefile b/www/py-django-mezzanine-grappelli/Makefile
index 5500daf1e562..711481d1eb59 100644
--- a/www/py-django-mezzanine-grappelli/Makefile
+++ b/www/py-django-mezzanine-grappelli/Makefile
@@ -14,7 +14,7 @@ COMMENT= Fork of django-grappelli for Mezzanine CMS
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= gettext python
+USES= gettext python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-django-otp-yubikey/Makefile b/www/py-django-otp-yubikey/Makefile
index 8b79d37e6dc4..de9100304a4c 100644
--- a/www/py-django-otp-yubikey/Makefile
+++ b/www/py-django-otp-yubikey/Makefile
@@ -15,7 +15,7 @@ LICENSE= BSD2CLAUSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}YubiOTP>=0.2.1:security/py-YubiOTP@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-otp>0.4.0:www/py-django-otp@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-django-otp/Makefile b/www/py-django-otp/Makefile
index 3453e78e3a87..98decfa5b210 100644
--- a/www/py-django-otp/Makefile
+++ b/www/py-django-otp/Makefile
@@ -12,7 +12,7 @@ COMMENT= Adding two-factor authentication to Django
LICENSE= BSD2CLAUSE
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-django-pglocks/Makefile b/www/py-django-pglocks/Makefile
index c17bb380a2dd..971d03cf260c 100644
--- a/www/py-django-pglocks/Makefile
+++ b/www/py-django-pglocks/Makefile
@@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>=1.0.0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-django-picklefield/Makefile b/www/py-django-picklefield/Makefile
index 2d50b0a25e91..1dcb5f2e2e21 100644
--- a/www/py-django-picklefield/Makefile
+++ b/www/py-django-picklefield/Makefile
@@ -17,7 +17,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${RUN_DEPENDS}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django111>=1.11:www/py-django111@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-django-pipeline/Makefile b/www/py-django-pipeline/Makefile
index bf550aa06b9c..676eb643455c 100644
--- a/www/py-django-pipeline/Makefile
+++ b/www/py-django-pipeline/Makefile
@@ -16,7 +16,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PY_FUTURES}
NO_ARCH= yes
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-django-post_office/Makefile b/www/py-django-post_office/Makefile
index 76fcaf897312..7ac18cf77c2c 100644
--- a/www/py-django-post_office/Makefile
+++ b/www/py-django-post_office/Makefile
@@ -16,7 +16,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django-jsonfield>=0:www/py-django-jsonfield@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django111>=1.8:www/py-django111@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
USE_LOCALE= en_US.UTF-8
diff --git a/www/py-django-ranged-response/Makefile b/www/py-django-ranged-response/Makefile
index bbef879fec6e..1a9d1a0100c1 100644
--- a/www/py-django-ranged-response/Makefile
+++ b/www/py-django-ranged-response/Makefile
@@ -13,7 +13,7 @@ LICENSE= MIT
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django111>=0:www/py-django111@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-django-simple-captcha/Makefile b/www/py-django-simple-captcha/Makefile
index b918c4341cbb..0484e8a621f1 100644
--- a/www/py-django-simple-captcha/Makefile
+++ b/www/py-django-simple-captcha/Makefile
@@ -19,7 +19,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django111>=1.7.0:www/py-django111@${PY_FLAVO
${PYTHON_PKGNAMEPREFIX}six>=1.2.0:devel/py-six@${PY_FLAVOR} \
${PY_PILLOW}
-USES= python zip
+USES= python:3.6+ zip
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-django-statici18n/Makefile b/www/py-django-statici18n/Makefile
index 20aed0b3d501..8e0a53218922 100644
--- a/www/py-django-statici18n/Makefile
+++ b/www/py-django-statici18n/Makefile
@@ -17,7 +17,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django111>=0:www/py-django111@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-appconf>=0.6:www/py-django-appconf@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-django-staticinline/Makefile b/www/py-django-staticinline/Makefile
index 1563a7c07c6a..02c4c9cec487 100644
--- a/www/py-django-staticinline/Makefile
+++ b/www/py-django-staticinline/Makefile
@@ -12,7 +12,7 @@ COMMENT= Django template tag to load static files inline with your template
LICENSE= MIT
#LICENSE_FILE= Not yet packaged in sdist
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-django-storages/Makefile b/www/py-django-storages/Makefile
index 34d3993113d6..9900511bb1e5 100644
--- a/www/py-django-storages/Makefile
+++ b/www/py-django-storages/Makefile
@@ -11,7 +11,7 @@ COMMENT= Generic storages for Django
LICENSE= BSD3CLAUSE
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-django-voting/Makefile b/www/py-django-voting/Makefile
index 551a03a8d921..45acf24b5995 100644
--- a/www/py-django-voting/Makefile
+++ b/www/py-django-voting/Makefile
@@ -13,7 +13,7 @@ COMMENT= Generic voting application for Django
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-django-webpack-loader/Makefile b/www/py-django-webpack-loader/Makefile
index fa8acd01ff47..d04151c1c769 100644
--- a/www/py-django-webpack-loader/Makefile
+++ b/www/py-django-webpack-loader/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django111>=1.10.1:www/py-django111@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist concurrent
NO_ARCH= yes
diff --git a/www/py-django111/Makefile b/www/py-django111/Makefile
index 3d086a2e1742..a5de39c19856 100644
--- a/www/py-django111/Makefile
+++ b/www/py-django111/Makefile
@@ -5,6 +5,7 @@
PORTNAME= django
PORTVERSION= 1.11.29
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= CHEESESHOP \
https://www.djangoproject.com/m/releases/${PORTVERSION}/
@@ -24,7 +25,7 @@ DEPRECATED= Django 1.11 is End-of-Life since April 2020. Switch to Django 2.2+ a
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytz>0:devel/py-pytz@${PY_FLAVOR}
NO_ARCH= yes
-USES= cpe python${PY_MYSQL} shebangfix
+USES= cpe python:3.6+ shebangfix
USE_PYTHON= autoplist distutils
SHEBANG_FILES= django/bin/django-admin.py \
django/conf/project_template/manage.py-tpl
@@ -39,7 +40,7 @@ OPTIONS_DEFINE= DOCS HTMLDOCS
OPTIONS_DEFAULT= SQLITE
OPTIONS_GROUP= DATABASE
-OPTIONS_GROUP_DATABASE= PGSQL MYSQL SQLITE
+OPTIONS_GROUP_DATABASE= PGSQL SQLITE
HTMLDOCS_DESC= Install HTML documentation (requires Sphinx)
@@ -48,8 +49,6 @@ PLIST_FILES= man/man1/django-admin.1.gz
HTMLDOCS_BUILD_DEPENDS= ${PY_SPHINX}
HTMLDOCS_IMPLIES= DOCS
PGSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}psycopg2>0:databases/py-psycopg2@${PY_FLAVOR}
-MYSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}MySQLdb>=1.2.2:databases/py-MySQLdb@${PY_FLAVOR}
-MYSQL_VARS= PY_MYSQL=:2.7
SQLITE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}
post-build-HTMLDOCS-on:
diff --git a/www/py-django_compressor/Makefile b/www/py-django_compressor/Makefile
index 68305f206b77..1ada10fccae6 100644
--- a/www/py-django_compressor/Makefile
+++ b/www/py-django_compressor/Makefile
@@ -3,6 +3,7 @@
PORTNAME= django_compressor
PORTVERSION= 2.4
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -17,20 +18,17 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django-appconf>=1.0.2:www/py-django-appconf@
${PYTHON_PKGNAMEPREFIX}rcssmin>=1.0.6:archivers/py-rcssmin@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}rjsmin>=1.1.0:archivers/py-rjsmin@${PY_FLAVOR}
-USES= python${PY_SLIMIT}
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
-OPTIONS_DEFINE= BEAUTIFULSOUP LXML HTML5LIB SLIMIT
+OPTIONS_DEFINE= BEAUTIFULSOUP LXML HTML5LIB
BEAUTIFULSOUP_DESC= Enable BeautifulSoupParser
LXML_DESC= Enable LxmlParser
HTML5LIB_DESC= Enable Html5LibParser
-SLIMIT_DESC= Enable SlimIt JavaScript filter
BEAUTIFULSOUP_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=4:www/py-beautifulsoup@${PY_FLAVOR}
LXML_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR}
HTML5LIB_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}html5lib>0:www/py-html5lib@${PY_FLAVOR}
-SLIMIT_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}slimit>=0.8.1:www/py-slimit@${PY_FLAVOR}
-SLIMIT_VARS= PY_SLIMIT=:2.7
.include <bsd.port.mk>
diff --git a/www/py-djangorestframework-csv/Makefile b/www/py-djangorestframework-csv/Makefile
index 9c0a85e588de..381fe587b672 100644
--- a/www/py-djangorestframework-csv/Makefile
+++ b/www/py-djangorestframework-csv/Makefile
@@ -12,7 +12,7 @@ COMMENT= Django REST framework
LICENSE= BSD2CLAUSE
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-djangorestframework-filters/Makefile b/www/py-djangorestframework-filters/Makefile
index dc3721e155f9..78a523d10514 100644
--- a/www/py-djangorestframework-filters/Makefile
+++ b/www/py-djangorestframework-filters/Makefile
@@ -12,7 +12,7 @@ COMMENT= Filtering extension to Django REST Framework
LICENSE= BSD2CLAUSE
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-djangorestframework-xml/Makefile b/www/py-djangorestframework-xml/Makefile
index 0bf46254fca3..381eef06e3d1 100644
--- a/www/py-djangorestframework-xml/Makefile
+++ b/www/py-djangorestframework-xml/Makefile
@@ -12,7 +12,7 @@ COMMENT= Django REST framework
LICENSE= BSD2CLAUSE
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-dtflickr/Makefile b/www/py-dtflickr/Makefile
index 70895a1625b4..e144ed562b66 100644
--- a/www/py-dtflickr/Makefile
+++ b/www/py-dtflickr/Makefile
@@ -15,7 +15,7 @@ COMMENT= Spiffy Flickr API library using JSON
LICENSE= APACHE20
-USES= python tar:bzip2
+USES= python:3.6+ tar:bzip2
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-fake-useragent/Makefile b/www/py-fake-useragent/Makefile
index 043fe73fc19f..5807e4755afd 100644
--- a/www/py-fake-useragent/Makefile
+++ b/www/py-fake-useragent/Makefile
@@ -13,7 +13,7 @@ COMMENT= Up to date simple useragent faker with real world database
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-falcon/Makefile b/www/py-falcon/Makefile
index bbcdd6f6c802..0aeae18a9333 100644
--- a/www/py-falcon/Makefile
+++ b/www/py-falcon/Makefile
@@ -22,7 +22,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}jsonschema>=0:devel/py-jsonschema@${PY_FLAV
${PYTHON_PKGNAMEPREFIX}pecan>=0:www/py-pecan@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist cython
post-install:
diff --git a/www/py-feedgenerator/Makefile b/www/py-feedgenerator/Makefile
index fecdab188b60..0c00c31375a8 100644
--- a/www/py-feedgenerator/Makefile
+++ b/www/py-feedgenerator/Makefile
@@ -17,7 +17,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytz>=0:devel/py-pytz@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-flask-admin/Makefile b/www/py-flask-admin/Makefile
index bb97dc3119f8..e6d1ecfbfdda 100644
--- a/www/py-flask-admin/Makefile
+++ b/www/py-flask-admin/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0.10:www/py-flask@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wtforms>0:textproc/py-wtforms@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-flask-apscheduler/Makefile b/www/py-flask-apscheduler/Makefile
index eac1eb888ed7..2137ea4d5936 100644
--- a/www/py-flask-apscheduler/Makefile
+++ b/www/py-flask-apscheduler/Makefile
@@ -18,7 +18,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0.10.1:www/py-flask@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}apscheduler>=3.2.0:devel/py-apscheduler@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dateutil>=2.4.2:devel/py-dateutil@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-flask-assets/Makefile b/www/py-flask-assets/Makefile
index ff9a62fa9e3c..48fb39fba653 100644
--- a/www/py-flask-assets/Makefile
+++ b/www/py-flask-assets/Makefile
@@ -15,7 +15,7 @@ LICENSE= BSD2CLAUSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0:www/py-flask@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}webassets>=0:www/py-webassets@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-flask-bootstrap/Makefile b/www/py-flask-bootstrap/Makefile
index 1bde0508471b..3e8ac02429f0 100644
--- a/www/py-flask-bootstrap/Makefile
+++ b/www/py-flask-bootstrap/Makefile
@@ -14,7 +14,7 @@ LICENSE= BSD3CLAUSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0.10.1:www/py-flask@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-flask-cache/Makefile b/www/py-flask-cache/Makefile
index 7c58676d76c2..ac46a89cf98a 100644
--- a/www/py-flask-cache/Makefile
+++ b/www/py-flask-cache/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0.8:www/py-flask@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-flask-collect/Makefile b/www/py-flask-collect/Makefile
index c8a75ce1b1bc..6f049058c792 100644
--- a/www/py-flask-collect/Makefile
+++ b/www/py-flask-collect/Makefile
@@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0:www/py-flask@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-flask-compress/Makefile b/www/py-flask-compress/Makefile
index 73e1bdb74fd5..5cde3fd73da4 100644
--- a/www/py-flask-compress/Makefile
+++ b/www/py-flask-compress/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0.11:www/py-flask@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-flask-cors/Makefile b/www/py-flask-cors/Makefile
index f06fc1ec977d..9682eb9b8d88 100644
--- a/www/py-flask-cors/Makefile
+++ b/www/py-flask-cors/Makefile
@@ -16,7 +16,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0.9:www/py-flask@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}nose>0:devel/py-nose@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-flask-flatpages/Makefile b/www/py-flask-flatpages/Makefile
index fb5c86f8a696..1719be13fe2c 100644
--- a/www/py-flask-flatpages/Makefile
+++ b/www/py-flask-flatpages/Makefile
@@ -17,7 +17,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0:www/py-flask@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}markdown>0:textproc/py-markdown@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-flask-json/Makefile b/www/py-flask-json/Makefile
index a5b066fa692c..87b901d9e2be 100644
--- a/www/py-flask-json/Makefile
+++ b/www/py-flask-json/Makefile
@@ -19,7 +19,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0.10:www/py-flask@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-cov>=0:devel/py-pytest-cov@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-flask-login/Makefile b/www/py-flask-login/Makefile
index d2fc20d70712..2372be57f89e 100644
--- a/www/py-flask-login/Makefile
+++ b/www/py-flask-login/Makefile
@@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0.12.3:www/py-flask@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-flask-migrate/Makefile b/www/py-flask-migrate/Makefile
index 2a18643746b3..8de96ffde914 100644
--- a/www/py-flask-migrate/Makefile
+++ b/www/py-flask-migrate/Makefile
@@ -18,7 +18,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0.9:www/py-flask@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}flask-sqlalchemy>=1.0:databases/py-flask-sqlalchemy@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}alembic>=0.7:databases/py-alembic@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-flask-moment/Makefile b/www/py-flask-moment/Makefile
index fc4cf8e370ed..3ee696a0a67f 100644
--- a/www/py-flask-moment/Makefile
+++ b/www/py-flask-moment/Makefile
@@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0.9:www/py-flask@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-flask-oauthlib/Makefile b/www/py-flask-oauthlib/Makefile
index b717e6aeb648..98f7406ca9a4 100644
--- a/www/py-flask-oauthlib/Makefile
+++ b/www/py-flask-oauthlib/Makefile
@@ -17,7 +17,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>0:www/py-flask@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests-oauthlib>0:www/py-requests-oauthlib@${PY_FLAVOR}
NO_ARCH= yes
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-flask-principal/Makefile b/www/py-flask-principal/Makefile
index be7a0494b439..0f9f0ab27be3 100644
--- a/www/py-flask-principal/Makefile
+++ b/www/py-flask-principal/Makefile
@@ -15,7 +15,7 @@ LICENSE= MIT
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0:www/py-flask@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}blinker>=0:devel/py-blinker@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-flask-restful/Makefile b/www/py-flask-restful/Makefile
index 3d273257b714..3a57888dbe22 100644
--- a/www/py-flask-restful/Makefile
+++ b/www/py-flask-restful/Makefile
@@ -18,7 +18,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aniso8601>0:devel/py-aniso8601@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}pytz>0:devel/py-pytz@${PY_FLAVOR}
NO_ARCH= yes
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-flask-script/Makefile b/www/py-flask-script/Makefile
index da2f4ca47f33..e0ca70e78e76 100644
--- a/www/py-flask-script/Makefile
+++ b/www/py-flask-script/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>0:www/py-flask@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-flask-sockets/Makefile b/www/py-flask-sockets/Makefile
index 3047e6f523fb..7e60a51470f2 100644
--- a/www/py-flask-sockets/Makefile
+++ b/www/py-flask-sockets/Makefile
@@ -16,7 +16,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0:www/py-flask@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gevent>=0:devel/py-gevent@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gevent-websocket>=0:www/py-gevent-websocket@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-flask-uploads/Makefile b/www/py-flask-uploads/Makefile
index 4c5a27fb31a8..b43d019af17a 100644
--- a/www/py-flask-uploads/Makefile
+++ b/www/py-flask-uploads/Makefile
@@ -15,7 +15,7 @@ LICENSE= MIT
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0.10:www/py-flask@${PY_FLAVOR}
NO_ARCH= yes
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-flask-wtf/Makefile b/www/py-flask-wtf/Makefile
index 86f3f41f89ea..4a66e7e69fcf 100644
--- a/www/py-flask-wtf/Makefile
+++ b/www/py-flask-wtf/Makefile
@@ -18,7 +18,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>0:www/py-flask@${PY_FLAVOR} \
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}nose>0:devel/py-nose@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}flask-babel>0:devel/py-flask-babel@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-flask/Makefile b/www/py-flask/Makefile
index 04213bc4e029..a044bfbbb059 100644
--- a/www/py-flask/Makefile
+++ b/www/py-flask/Makefile
@@ -19,7 +19,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}werkzeug>=0.15:www/py-werkzeug@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}click>=5.1:devel/py-click@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils concurrent autoplist
NO_ARCH= yes
diff --git a/www/py-forcediphttpsadapter/Makefile b/www/py-forcediphttpsadapter/Makefile
index 1e9d7072e1ed..e9065f962bc5 100644
--- a/www/py-forcediphttpsadapter/Makefile
+++ b/www/py-forcediphttpsadapter/Makefile
@@ -12,7 +12,7 @@ COMMENT= Use IP address when connecting via SSL
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-formencode/Makefile b/www/py-formencode/Makefile
index 0dfeafb4623f..6cd34c564bb6 100644
--- a/www/py-formencode/Makefile
+++ b/www/py-formencode/Makefile
@@ -15,7 +15,7 @@ LICENSE= PSFL
OPTIONS_DEFINE= DOCS
-USES= gettext-runtime:run python zip
+USES= gettext-runtime:run python:3.6+ zip
USE_PYTHON= distutils autoplist
DOCSDIR= ${PREFIX}/share/doc/py-${PORTNAME}
diff --git a/www/py-fqdn/Makefile b/www/py-fqdn/Makefile
index 7024ae110580..b4fe3a3f242d 100644
--- a/www/py-fqdn/Makefile
+++ b/www/py-fqdn/Makefile
@@ -10,7 +10,7 @@ PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= whitejv81@gmail.com
COMMENT= RFC-compliant FQDN validation and manipulation for Python
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-frozen-flask/Makefile b/www/py-frozen-flask/Makefile
index e5cc34cc6bed..30dbe5a3a073 100644
--- a/www/py-frozen-flask/Makefile
+++ b/www/py-frozen-flask/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask>=0:www/py-flask@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-gandi.cli/Makefile b/www/py-gandi.cli/Makefile
index fed2f5e540ca..6700f8883387 100644
--- a/www/py-gandi.cli/Makefile
+++ b/www/py-gandi.cli/Makefile
@@ -20,7 +20,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml@${PY_FLAVOR} \
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR}
# Actually 2.6-3.6(+)
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-gevent-websocket/Makefile b/www/py-gevent-websocket/Makefile
index ca4e03f8b0d8..af0921b2e6eb 100644
--- a/www/py-gevent-websocket/Makefile
+++ b/www/py-gevent-websocket/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gevent>=0:devel/py-gevent@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-google-api-core/Makefile b/www/py-google-api-core/Makefile
index 76c3254efedb..295bce755bce 100644
--- a/www/py-google-api-core/Makefile
+++ b/www/py-google-api-core/Makefile
@@ -21,7 +21,7 @@ RUN_DEPENDS= ${PY_FUTURES} \
${PYTHON_PKGNAMEPREFIX}requests>=2.18.0<3.0.0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=1.13.0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-google-api-python-client/Makefile b/www/py-google-api-python-client/Makefile
index fa7a3a4d1848..39425a195497 100644
--- a/www/py-google-api-python-client/Makefile
+++ b/www/py-google-api-python-client/Makefile
@@ -19,7 +19,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}httplib2>=0.9.2:www/py-httplib2@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}six>=1.6.1:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}uritemplate>=3.0.0:net/py-uritemplate@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-google-cloud-dlp/Makefile b/www/py-google-cloud-dlp/Makefile
index 359ca2783679..24ef85455c8b 100644
--- a/www/py-google-cloud-dlp/Makefile
+++ b/www/py-google-cloud-dlp/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-api-core>=0.1.1:www/py-google-api-core@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-google-cloud-vision/Makefile b/www/py-google-cloud-vision/Makefile
index 3da29b76da7b..0b27661dfcb0 100644
--- a/www/py-google-cloud-vision/Makefile
+++ b/www/py-google-cloud-vision/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-api-core>=0.1.1:www/py-google-api-core@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-google-resumable-media/Makefile b/www/py-google-resumable-media/Makefile
index 1b07ea07d657..c4f5e5bf96e6 100644
--- a/www/py-google-resumable-media/Makefile
+++ b/www/py-google-resumable-media/Makefile
@@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-grequests/Makefile b/www/py-grequests/Makefile
index f56aff37c383..066e899b09ea 100644
--- a/www/py-grequests/Makefile
+++ b/www/py-grequests/Makefile
@@ -20,7 +20,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}nose>0:devel/py-nose@${PY_FLAVOR}
USE_GITHUB= yes
GH_ACCOUNT= kennethreitz
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-grip/Makefile b/www/py-grip/Makefile
index ea78274a5f68..2da84c5c5828 100644
--- a/www/py-grip/Makefile
+++ b/www/py-grip/Makefile
@@ -19,7 +19,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}docopt>=0.4.0:devel/py-docopt@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}path-and-address>=2.0.1:www/py-path-and-address@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=2.4.1:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
CONFLICTS_INSTALL= grip
diff --git a/www/py-gunicorn/Makefile b/www/py-gunicorn/Makefile
index 52c6e7022380..a20316663f77 100644
--- a/www/py-gunicorn/Makefile
+++ b/www/py-gunicorn/Makefile
@@ -32,7 +32,7 @@ GEVENT_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gevent>=0.12.2:devel/py-gevent@${PY_F
PROCTITLE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setproctitle>0:devel/py-setproctitle@${PY_FLAVOR}
TORNADO_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tornado>=2.2:www/py-tornado@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_GITHUB= yes
USE_PYTHON= autoplist concurrent distutils
diff --git a/www/py-h2/Makefile b/www/py-h2/Makefile
index 98e2962e8ea8..796ffa6be14f 100644
--- a/www/py-h2/Makefile
+++ b/www/py-h2/Makefile
@@ -16,7 +16,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hyperframe>=6.0:www/py-hyperframe@${PY_FLAVO
${PYTHON_PKGNAMEPREFIX}hpack>=4.0<5:www/py-hpack@${PY_FLAVOR} \
${PY_ENUM34}
-USES?= python
+USES?= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-hpack/Makefile b/www/py-hpack/Makefile
index e854f7d96871..19253afd87ad 100644
--- a/www/py-hpack/Makefile
+++ b/www/py-hpack/Makefile
@@ -12,7 +12,7 @@ COMMENT= HTTP/2 header encoding (HPACK) logic implementation
LICENSE= MIT
-USES?= python
+USES?= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-html5-parser/Makefile b/www/py-html5-parser/Makefile
index 2adf9ebc8af7..95fe3944cffb 100644
--- a/www/py-html5-parser/Makefile
+++ b/www/py-html5-parser/Makefile
@@ -13,7 +13,7 @@ LICENSE= APACHE20
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>=3.8.0:devel/py-lxml@${PY_FLAVOR}
-USES= gnome pkgconfig python
+USES= gnome pkgconfig python:3.6+
USE_PYTHON= autoplist distutils
USE_GNOME= libxml2
diff --git a/www/py-httmock/Makefile b/www/py-httmock/Makefile
index 6bdbc6eb3f21..95ad03dda861 100644
--- a/www/py-httmock/Makefile
+++ b/www/py-httmock/Makefile
@@ -13,7 +13,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=1.0.0:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_GITHUB= yes # tests missing from PyPI sdist
USE_PYTHON= distutils autoplist
diff --git a/www/py-httplib2/Makefile b/www/py-httplib2/Makefile
index 5432cb252d2c..ecbb91196ae5 100644
--- a/www/py-httplib2/Makefile
+++ b/www/py-httplib2/Makefile
@@ -11,7 +11,7 @@ COMMENT= Comprehensive HTTP client library
LICENSE= MIT
-USES= python
+USES= python:3.6+
NO_ARCH= yes
USE_PYTHON= autoplist distutils
diff --git a/www/py-hyper/Makefile b/www/py-hyper/Makefile
index fdbc647fffeb..6a18c7ee28e9 100644
--- a/www/py-hyper/Makefile
+++ b/www/py-hyper/Makefile
@@ -22,7 +22,7 @@ TEST_DEPENDS= ${PY_FUTURES} \
${PYTHON_PKGNAMEPREFIX}mock>0:devel/py-mock@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}hpack>0:www/py-hpack@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_GITHUB= yes
USE_PYTHON= autoplist concurrent distutils
diff --git a/www/py-hyperframe/Makefile b/www/py-hyperframe/Makefile
index 58f7c3d55004..23fd12ecd22a 100644
--- a/www/py-hyperframe/Makefile
+++ b/www/py-hyperframe/Makefile
@@ -12,7 +12,7 @@ COMMENT= Python module that decodes binary streams into HTTP/2 frames
LICENSE= MIT
-USES?= python
+USES?= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-hyperlink/Makefile b/www/py-hyperlink/Makefile
index 48d1dd4fe638..32d92d9f17b5 100644
--- a/www/py-hyperlink/Makefile
+++ b/www/py-hyperlink/Makefile
@@ -16,7 +16,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}idna>=2.5:dns/py-idna@${PY_FLAVOR} \
${PY_TYPING}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-imdbpy/Makefile b/www/py-imdbpy/Makefile
index 9ae9e34fbdc0..cb9f67b187cd 100644
--- a/www/py-imdbpy/Makefile
+++ b/www/py-imdbpy/Makefile
@@ -17,7 +17,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-inlinestyler/Makefile b/www/py-inlinestyler/Makefile
index bf010789d20e..77908ce30f3b 100644
--- a/www/py-inlinestyler/Makefile
+++ b/www/py-inlinestyler/Makefile
@@ -16,7 +16,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cssutils>0:www/py-cssutils@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=1.0.0:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-internetarchive/Makefile b/www/py-internetarchive/Makefile
index 80fac3bd3377..c98c2ea78c15 100644
--- a/www/py-internetarchive/Makefile
+++ b/www/py-internetarchive/Makefile
@@ -19,7 +19,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}docopt>=0.6.0:devel/py-docopt@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=1.13.0:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}tqdm>=4.0.0:misc/py-tqdm@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils concurrent autoplist
NO_ARCH= yes
diff --git a/www/py-jonpy/Makefile b/www/py-jonpy/Makefile
index 6800d06b8132..2388d328611e 100644
--- a/www/py-jonpy/Makefile
+++ b/www/py-jonpy/Makefile
@@ -12,7 +12,7 @@ COMMENT= Python FastCGI interface library
LICENSE= MIT
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-lektor/Makefile b/www/py-lektor/Makefile
index 1a60eba42ac1..6d307f51b26e 100644
--- a/www/py-lektor/Makefile
+++ b/www/py-lektor/Makefile
@@ -23,7 +23,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>=2.4:devel/py-Jinja2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}inifile>=0.4:devel/py-inifile@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pip>=0:devel/py-pip@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-lesscpy/Makefile b/www/py-lesscpy/Makefile
index ddea6e4e48c1..2b0383f81c8e 100644
--- a/www/py-lesscpy/Makefile
+++ b/www/py-lesscpy/Makefile
@@ -18,7 +18,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}coverage>0:devel/py-coverage@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}flake8>0:devel/py-flake8@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}nose>0:devel/py-nose@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-libsass/Makefile b/www/py-libsass/Makefile
index 7be7bdfcc03d..d5b23025e725 100644
--- a/www/py-libsass/Makefile
+++ b/www/py-libsass/Makefile
@@ -16,7 +16,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libsass.so:textproc/libsass
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
-USES= compiler:c++11-lang localbase python
+USES= compiler:c++11-lang localbase python:3.6+
USE_PYTHON= autoplist distutils
MAKE_ENV= SYSTEM_SASS=1
diff --git a/www/py-livereload/Makefile b/www/py-livereload/Makefile
index 68a57546fa7e..fb8f29318aeb 100644
--- a/www/py-livereload/Makefile
+++ b/www/py-livereload/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}tornado>0:www/py-tornado@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils concurrent autoplist
NO_ARCH= yes
diff --git a/www/py-mechanize/Makefile b/www/py-mechanize/Makefile
index 8e39da376318..5961ee2a2018 100644
--- a/www/py-mechanize/Makefile
+++ b/www/py-mechanize/Makefile
@@ -15,7 +15,7 @@ LICENSE= BSD3CLAUSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}html5lib>=0.9:www/py-html5lib@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}html5-parser>0:www/py-html5-parser@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-mwoauth/Makefile b/www/py-mwoauth/Makefile
index 1e3b8f9f0d56..eae0f82e70f1 100644
--- a/www/py-mwoauth/Makefile
+++ b/www/py-mwoauth/Makefile
@@ -18,7 +18,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}oauthlib>0:security/py-oauthlib@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}requests-oauthlib>0:www/py-requests-oauthlib@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-nevow/Makefile b/www/py-nevow/Makefile
index 50eca4b1d78d..6844489f229a 100644
--- a/www/py-nevow/Makefile
+++ b/www/py-nevow/Makefile
@@ -18,7 +18,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}twisted>=0:devel/py-twisted@${PY_FLAVOR}
USE_PYTHON= autoplist distutils
-USES= gettext python
+USES= gettext python:3.6+
NO_ARCH= yes
SUB_FILES= pkg-message
diff --git a/www/py-pafy/Makefile b/www/py-pafy/Makefile
index 491a57f34845..472666609eba 100644
--- a/www/py-pafy/Makefile
+++ b/www/py-pafy/Makefile
@@ -17,7 +17,7 @@ LICENSE= GPLv3
BUILD_DEPENDS= youtube_dl>=2016.02.22:www/youtube_dl
RUN_DEPENDS= youtube_dl>=2016.02.22:www/youtube_dl
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
post-patch:
diff --git a/www/py-path-and-address/Makefile b/www/py-path-and-address/Makefile
index 6c0d2c9d889a..0a1e70d801d4 100644
--- a/www/py-path-and-address/Makefile
+++ b/www/py-path-and-address/Makefile
@@ -13,7 +13,7 @@ LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
NO_ARCH= yes
-USES= python zip
+USES= python:3.6+ zip
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-pelican/Makefile b/www/py-pelican/Makefile
index 790c7f6159f3..6d7ba75c24e0 100644
--- a/www/py-pelican/Makefile
+++ b/www/py-pelican/Makefile
@@ -23,7 +23,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}docutils>0:textproc/py-docutils@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}dateutil>0:devel/py-dateutil@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mock>0:devel/py-mock@${PY_FLAVOR}
-USES= python shebangfix
+USES= python:3.6+ shebangfix
USE_GITHUB= yes
USE_PYTHON= autoplist concurrent distutils
diff --git a/www/py-planet/Makefile b/www/py-planet/Makefile
index 7e7a85e9b8e8..a95783dcf8de 100644
--- a/www/py-planet/Makefile
+++ b/www/py-planet/Makefile
@@ -18,7 +18,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}click>=0:devel/py-click@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests-futures>=0:www/py-requests-futures@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-praw/Makefile b/www/py-praw/Makefile
index e2754d4056de..ece7e895eab5 100644
--- a/www/py-praw/Makefile
+++ b/www/py-praw/Makefile
@@ -22,7 +22,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mock>=0.8:devel/py-mock@${PY_FLAVOR} \
# betamax-matchers >=0.3.0, <0.5
# betamax-serializers >=0.2, <0.3
-USES= python
+USES= python:3.6+
USE_GITHUB= yes # missing test data files
USE_PYTHON= autoplist concurrent distutils
diff --git a/www/py-prawcore/Makefile b/www/py-prawcore/Makefile
index 412e0bef1129..8127a1aab10f 100644
--- a/www/py-prawcore/Makefile
+++ b/www/py-prawcore/Makefile
@@ -20,7 +20,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mock>=0.8:devel/py-mock@${PY_FLAVOR} \
# betamax-matchers >=0.3.0, <0.5
# betamax-serializers >=0.2, <0.3
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-priority/Makefile b/www/py-priority/Makefile
index b6b9c3b8b36c..064a2bea729f 100644
--- a/www/py-priority/Makefile
+++ b/www/py-priority/Makefile
@@ -15,6 +15,6 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
NO_ARCH= yes
USE_PYTHON= autoplist concurrent distutils
-USES= python
+USES= python:3.6+
.include <bsd.port.mk>
diff --git a/www/py-puppetboard/Makefile b/www/py-puppetboard/Makefile
index 43f891ab0472..f727a3f14d38 100644
--- a/www/py-puppetboard/Makefile
+++ b/www/py-puppetboard/Makefile
@@ -21,7 +21,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}CommonMark>=0.7.2:textproc/py-CommonMark@${P
${PYTHON_PKGNAMEPREFIX}pypuppetdb>=0.3.3:databases/py-pypuppetdb@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=2.13.0:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_GITHUB= yes
USE_PYTHON= autoplist distutils
diff --git a/www/py-py-restclient/Makefile b/www/py-py-restclient/Makefile
index 3a318b27d2b1..959745f39d99 100644
--- a/www/py-py-restclient/Makefile
+++ b/www/py-py-restclient/Makefile
@@ -13,7 +13,7 @@ COMMENT= Python REST Client
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}httplib2>=0:www/py-httplib2@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
post-extract:
diff --git a/www/py-pyjwt/Makefile b/www/py-pyjwt/Makefile
index daca174186f6..05ed832df921 100644
--- a/www/py-pyjwt/Makefile
+++ b/www/py-pyjwt/Makefile
@@ -19,7 +19,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}cryptography>0:security/py-cryptography@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pycrypto>=0:security/py-pycrypto@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils concurrent autoplist
OPTIONS_DEFINE= RSASSA
diff --git a/www/py-pyocclient/Makefile b/www/py-pyocclient/Makefile
index f0a0356a0c38..ee5a991e187d 100644
--- a/www/py-pyocclient/Makefile
+++ b/www/py-pyocclient/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=2.0.1:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-python-dotenv/Makefile b/www/py-python-dotenv/Makefile
index 5c6a1ad19c54..b6a7d044f397 100644
--- a/www/py-python-dotenv/Makefile
+++ b/www/py-python-dotenv/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PY_TYPING}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-python-multipart/Makefile b/www/py-python-multipart/Makefile
index 97253a540ce8..e50956a0ad45 100644
--- a/www/py-python-multipart/Makefile
+++ b/www/py-python-multipart/Makefile
@@ -18,7 +18,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mock>=0:devel/py-mock@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}yaml>=0:devel/py-yaml@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-pyweblib/Makefile b/www/py-pyweblib/Makefile
index ed297c10a0e0..d5ab1b503978 100644
--- a/www/py-pyweblib/Makefile
+++ b/www/py-pyweblib/Makefile
@@ -12,7 +12,7 @@ COMMENT= Yet another web programming framework for Python
LICENSE= GPLv2
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
PORTDOCS= pyweblib.forms.html pyweblib.helper.html \
diff --git a/www/py-recaptcha/Makefile b/www/py-recaptcha/Makefile
index c119894eb21c..62ee165188e7 100644
--- a/www/py-recaptcha/Makefile
+++ b/www/py-recaptcha/Makefile
@@ -12,7 +12,7 @@ DISTNAME= ${PORTNAME}-client-${PORTVERSION}
MAINTAINER= philip@FreeBSD.org
COMMENT= Plugin for reCAPTCHA and reCAPTCHA Mailhide
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-requests-aws4auth/Makefile b/www/py-requests-aws4auth/Makefile
index 7d822c30792c..cc46d6b5c68c 100644
--- a/www/py-requests-aws4auth/Makefile
+++ b/www/py-requests-aws4auth/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-requests-cache/Makefile b/www/py-requests-cache/Makefile
index f8eff20eb0fa..8998ea7f4c05 100644
--- a/www/py-requests-cache/Makefile
+++ b/www/py-requests-cache/Makefile
@@ -18,7 +18,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>=2.8:devel/py-pytest@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mock>0:devel/py-mock@${PY_FLAVOR}
# Python 2.6-3.5(+) 20171026
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-requests-file/Makefile b/www/py-requests-file/Makefile
index 2fec6b414581..3419f5fdbc63 100644
--- a/www/py-requests-file/Makefile
+++ b/www/py-requests-file/Makefile
@@ -15,7 +15,7 @@ LICENSE= APACHE20
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=1.0.0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-requests-futures/Makefile b/www/py-requests-futures/Makefile
index ba789953535a..43ad40ca1fa4 100644
--- a/www/py-requests-futures/Makefile
+++ b/www/py-requests-futures/Makefile
@@ -15,7 +15,7 @@ LICENSE= APACHE20
RUN_DEPENDS= ${PY_FUTURES} \
${PYTHON_PKGNAMEPREFIX}requests>=1.2.0:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-requests-mock/Makefile b/www/py-requests-mock/Makefile
index 266ef9a38d25..31f1df2de913 100644
--- a/www/py-requests-mock/Makefile
+++ b/www/py-requests-mock/Makefile
@@ -23,7 +23,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}fixtures>=0:devel/py-fixtures@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}testrepository>=0.0.18:devel/py-testrepository@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}testtools>=0:devel/py-testtools@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-requests-oauthlib/Makefile b/www/py-requests-oauthlib/Makefile
index 49b2d346ad7a..f5a24b21704f 100644
--- a/www/py-requests-oauthlib/Makefile
+++ b/www/py-requests-oauthlib/Makefile
@@ -16,7 +16,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}oauthlib>=0.6.2:security/py-oauthlib@${PY_FL
${PYTHON_PKGNAMEPREFIX}requests>=2.0.0:www/py-requests@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mock>0:devel/py-mock@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-requests-toolbelt/Makefile b/www/py-requests-toolbelt/Makefile
index 4a6091ca131e..6aabb7f3162e 100644
--- a/www/py-requests-toolbelt/Makefile
+++ b/www/py-requests-toolbelt/Makefile
@@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=2.0.1<3.0.0:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-requests-unixsocket/Makefile b/www/py-requests-unixsocket/Makefile
index d92543fd5312..01335b8a947b 100644
--- a/www/py-requests-unixsocket/Makefile
+++ b/www/py-requests-unixsocket/Makefile
@@ -17,7 +17,7 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR} \
RUN_DEPENDS= ${PY_FUTURES} \
${PYTHON_PKGNAMEPREFIX}requests>=1.2.0:www/py-requests@${PY_FLAVOR}
-USES= python shebangfix
+USES= python:3.6+ shebangfix
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-requests_ntlm/Makefile b/www/py-requests_ntlm/Makefile
index 3582e9e10992..43b239e09a4d 100644
--- a/www/py-requests_ntlm/Makefile
+++ b/www/py-requests_ntlm/Makefile
@@ -16,7 +16,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cryptography>=1.3:security/py-cryptography@$
${PYTHON_PKGNAMEPREFIX}ntlm-auth>=1.0.2:security/py-ntlm-auth@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=2.0.0:www/py-requests@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-restclient/Makefile b/www/py-restclient/Makefile
index 6fde02a53da3..ec9d07bbbf73 100644
--- a/www/py-restclient/Makefile
+++ b/www/py-restclient/Makefile
@@ -15,7 +15,7 @@ LICENSE= BSD3CLAUSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}httplib2>=0:www/py-httplib2@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
post-patch:
diff --git a/www/py-rfc3986/Makefile b/www/py-rfc3986/Makefile
index 710b14c1d483..abf1d93ba793 100644
--- a/www/py-rfc3986/Makefile
+++ b/www/py-rfc3986/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
USE_GITHUB= yes
GH_ACCOUNT= sigmavirus24
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-rfc3987/Makefile b/www/py-rfc3987/Makefile
index aa50c963506b..33e7b57a325e 100644
--- a/www/py-rfc3987/Makefile
+++ b/www/py-rfc3987/Makefile
@@ -13,7 +13,7 @@ COMMENT= Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING.txt
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-rollbar/Makefile b/www/py-rollbar/Makefile
index 65b663e1d58d..978219bb44f4 100644
--- a/www/py-rollbar/Makefile
+++ b/www/py-rollbar/Makefile
@@ -14,7 +14,7 @@ LICENSE= MIT
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>0.12.1:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=1.9.0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-rules/Makefile b/www/py-rules/Makefile
index 62eff0f67572..d709187378e1 100644
--- a/www/py-rules/Makefile
+++ b/www/py-rules/Makefile
@@ -12,7 +12,7 @@ COMMENT= Awesome Django authorization, without the database
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-scrapy/Makefile b/www/py-scrapy/Makefile
index a2b8e05591df..9454b5127ed3 100644
--- a/www/py-scrapy/Makefile
+++ b/www/py-scrapy/Makefile
@@ -25,7 +25,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}twisted>=13.1.0:devel/py-twisted@${PY_FLAVOR
${PYTHON_PKGNAMEPREFIX}six>=1.5.2:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}parsel>=1.5:textproc/py-parsel@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils concurrent autoplist
OPTIONS_DEFINE= SSL
diff --git a/www/py-secure-cookie/Makefile b/www/py-secure-cookie/Makefile
index 2a8aa8773119..c134d36484ab 100644
--- a/www/py-secure-cookie/Makefile
+++ b/www/py-secure-cookie/Makefile
@@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.rst
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}werkzeug>0:www/py-werkzeug@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-selector/Makefile b/www/py-selector/Makefile
index af518f2ffe2e..f24823b5a53d 100644
--- a/www/py-selector/Makefile
+++ b/www/py-selector/Makefile
@@ -15,7 +15,7 @@ LICENSE_COMB= dual
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}resolver>=0:devel/py-resolver@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-selenium/Makefile b/www/py-selenium/Makefile
index d9a59c3f4bd2..c7f37b182c13 100644
--- a/www/py-selenium/Makefile
+++ b/www/py-selenium/Makefile
@@ -16,7 +16,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}urllib3>=0:net/py-urllib3@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-slimit/Makefile b/www/py-slimit/Makefile
index 7e009c2bb2dd..6ab53f686fe3 100644
--- a/www/py-slimit/Makefile
+++ b/www/py-slimit/Makefile
@@ -15,7 +15,7 @@ LICENSE= MIT
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}ply>=3.4:devel/py-ply@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}ply>=3.4:devel/py-ply@${PY_FLAVOR}
-USES= python zip
+USES= python:3.6+ zip
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-slumber/Makefile b/www/py-slumber/Makefile
index fec6ec622745..6d9e86ff8cb0 100644
--- a/www/py-slumber/Makefile
+++ b/www/py-slumber/Makefile
@@ -20,7 +20,7 @@ OPTIONS_DEFINE= YAML
YAML_DESC= YAML serializer support
YAML_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_GITHUB= yes
USE_PYTHON= autoplist distutils
diff --git a/www/py-sockjs-tornado/Makefile b/www/py-sockjs-tornado/Makefile
index 151856723303..d2ec1802a581 100644
--- a/www/py-sockjs-tornado/Makefile
+++ b/www/py-sockjs-tornado/Makefile
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tornado>0:www/py-tornado@${PY_FLAVOR}
NO_ARCH= yes
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-spyne/Makefile b/www/py-spyne/Makefile
index dd27f09e6e42..0681177cecae 100644
--- a/www/py-spyne/Makefile
+++ b/www/py-spyne/Makefile
@@ -36,7 +36,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}colorama>=0:devel/py-colorama@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}werkzeug>=0:www/py-werkzeug@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}zeep>=0:net/py-zeep@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-sseclient/Makefile b/www/py-sseclient/Makefile
index 0a783a447d7e..fa378071554e 100644
--- a/www/py-sseclient/Makefile
+++ b/www/py-sseclient/Makefile
@@ -14,7 +14,7 @@ LICENSE= MIT
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=2.9:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-tornado4/Makefile b/www/py-tornado4/Makefile
index 0fea52c01ba5..6f635fc0a1d4 100644
--- a/www/py-tornado4/Makefile
+++ b/www/py-tornado4/Makefile
@@ -13,7 +13,7 @@ COMMENT= Python Web Server from FriendFeed
LICENSE= APACHE20
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}tornado \
diff --git a/www/py-treq/Makefile b/www/py-treq/Makefile
index a24ad2d6a1ec..afae82198aec 100644
--- a/www/py-treq/Makefile
+++ b/www/py-treq/Makefile
@@ -25,7 +25,7 @@ RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}openssl>=16.0.0:security/py-openssl@${PY_FL
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mock>=0:devel/py-mock@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-turbogears2/Makefile b/www/py-turbogears2/Makefile
index e0d26a219be7..c78f3bb47317 100644
--- a/www/py-turbogears2/Makefile
+++ b/www/py-turbogears2/Makefile
@@ -18,7 +18,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}crank>=0:devel/py-crank@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}markupsafe>=0:textproc/py-markupsafe@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}repoze.lru>=0:devel/py-repoze.lru@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-tvdb_api/Makefile b/www/py-tvdb_api/Makefile
index a637b45a5983..246fb4382229 100644
--- a/www/py-tvdb_api/Makefile
+++ b/www/py-tvdb_api/Makefile
@@ -17,7 +17,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests-cache>0:www/py-requests-cache@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-txrequests/Makefile b/www/py-txrequests/Makefile
index cf15eeb97b2e..41194b127cf6 100644
--- a/www/py-txrequests/Makefile
+++ b/www/py-txrequests/Makefile
@@ -16,7 +16,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=1.2.0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}twisted>=9.0.0:devel/py-twisted@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-urlgrabber/Makefile b/www/py-urlgrabber/Makefile
index 3456a2e51339..4f321690a351 100644
--- a/www/py-urlgrabber/Makefile
+++ b/www/py-urlgrabber/Makefile
@@ -18,7 +18,7 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>=1.14.0:devel/py-six@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>=1.14.0:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pycurl>=7.19.0_1:ftp/py-pycurl@${PY_FLAVOR}
-USES= python shebangfix
+USES= python:3.6+ shebangfix
DOCS_MAKE_ENV= INSTALL_DOCS=yes
DOCSDIR= ${PREFIX}/share/doc/${PYTHON_PKGNAMEPREFIX}${PORTNAME}
diff --git a/www/py-urlman/Makefile b/www/py-urlman/Makefile
index c938b4305604..c8aae9344b91 100644
--- a/www/py-urlman/Makefile
+++ b/www/py-urlman/Makefile
@@ -11,7 +11,7 @@ COMMENT= Nicer way to do URLs for Django models
LICENSE= APACHE20
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-urlobject/Makefile b/www/py-urlobject/Makefile
index c265be10794d..03e3f49fe14c 100644
--- a/www/py-urlobject/Makefile
+++ b/www/py-urlobject/Makefile
@@ -14,7 +14,7 @@ COMMENT= Utility class for manipulating URLs
LICENSE= UNLICENSE
LICENSE_FILE= ${WRKSRC}/UNLICENSE
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
.include <bsd.port.mk>
diff --git a/www/py-user_agent/Makefile b/www/py-user_agent/Makefile
index c3c7fdae2f32..b0e61118808d 100644
--- a/www/py-user_agent/Makefile
+++ b/www/py-user_agent/Makefile
@@ -14,7 +14,7 @@ LICENSE= MIT
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
NO_ARCH= yes
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-utidylib/Makefile b/www/py-utidylib/Makefile
index e7cb8dae824f..54f615f9f865 100644
--- a/www/py-utidylib/Makefile
+++ b/www/py-utidylib/Makefile
@@ -17,7 +17,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libtidy.so.5:www/tidy-html5
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-w3lib/Makefile b/www/py-w3lib/Makefile
index 8c9e99426484..1e474c19e763 100644
--- a/www/py-w3lib/Makefile
+++ b/www/py-w3lib/Makefile
@@ -13,7 +13,7 @@ LICENSE= BSD3CLAUSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-waitress/Makefile b/www/py-waitress/Makefile
index 1f416c48a5ff..15ad5f2ab6b2 100644
--- a/www/py-waitress/Makefile
+++ b/www/py-waitress/Makefile
@@ -13,7 +13,7 @@ COMMENT= Python WSGI server
LICENSE= ZPL21
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-webassets/Makefile b/www/py-webassets/Makefile
index 0ec08f1865b6..c48b803ba74b 100644
--- a/www/py-webassets/Makefile
+++ b/www/py-webassets/Makefile
@@ -12,7 +12,7 @@ COMMENT= Media asset management for Python
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-webob/Makefile b/www/py-webob/Makefile
index 8b0b0a3245eb..42fc536393d5 100644
--- a/www/py-webob/Makefile
+++ b/www/py-webob/Makefile
@@ -16,7 +16,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}coverage>=0:devel/py-coverage@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}pytest-cov>=0:devel/py-pytest-cov@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pylons-sphinx-themes>=0:textproc/py-pylons-sphinx-themes@${PY_FLAVOR} \
${PY_SPHINX}
diff --git a/www/py-websocket-client/Makefile b/www/py-websocket-client/Makefile
index 9671e87c38ef..607cb55298e5 100644
--- a/www/py-websocket-client/Makefile
+++ b/www/py-websocket-client/Makefile
@@ -20,7 +20,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils concurrent autoplist
NO_ARCH= yes
diff --git a/www/py-webunit/Makefile b/www/py-webunit/Makefile
index 73e71c643da3..cf726aef4f04 100644
--- a/www/py-webunit/Makefile
+++ b/www/py-webunit/Makefile
@@ -11,7 +11,7 @@ PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= lwhsu@FreeBSD.org
COMMENT= Unit test your websites with code that acts like a web browser
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
EXAMPLESDIR= ${PREFIX}/share/examples/py-${PORTNAME}
diff --git a/www/py-werkzeug/Makefile b/www/py-werkzeug/Makefile
index 8f9354968bb6..74ef8bf9b6ab 100644
--- a/www/py-werkzeug/Makefile
+++ b/www/py-werkzeug/Makefile
@@ -16,7 +16,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.rst
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}openssl>=16.0:security/py-openssl@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
diff --git a/www/py-wfuzz/Makefile b/www/py-wfuzz/Makefile
index 6140cb3f1510..ecf13b820ec7 100644
--- a/www/py-wfuzz/Makefile
+++ b/www/py-wfuzz/Makefile
@@ -19,7 +19,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}chardet>0:textproc/py-chardet@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
py27_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}configparser>0:devel/py-configparser@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils concurrent autoplist
NO_ARCH= yes
diff --git a/www/py-whitenoise/Makefile b/www/py-whitenoise/Makefile
index a234389c49c3..f0818fe57a31 100644
--- a/www/py-whitenoise/Makefile
+++ b/www/py-whitenoise/Makefile
@@ -12,7 +12,7 @@ COMMENT= Radically simplified static file serving for wsgi applications
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
diff --git a/www/py-wikitools/Makefile b/www/py-wikitools/Makefile
index 992cf2bfcab3..e2165dcc2c98 100644
--- a/www/py-wikitools/Makefile
+++ b/www/py-wikitools/Makefile
@@ -15,7 +15,7 @@ LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
NO_ARCH= yes
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
.include <bsd.port.mk>
diff --git a/www/py-ws4py/Makefile b/www/py-ws4py/Makefile
index 61af161539d5..b5f5d8aee62a 100644
--- a/www/py-ws4py/Makefile
+++ b/www/py-ws4py/Makefile
@@ -12,7 +12,7 @@ COMMENT= WebSocket package for Python
LICENSE= BSD3CLAUSE
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/py-wsaccel/Makefile b/www/py-wsaccel/Makefile
index b9fe1b01488f..4bdbdf116564 100644
--- a/www/py-wsaccel/Makefile
+++ b/www/py-wsaccel/Makefile
@@ -12,7 +12,7 @@ COMMENT= WebSocket Accelerator for ws4py and AutobahnPython
LICENSE= APACHE20
-USES= python
+USES= python:3.6+
USE_PYTHON= autoplist distutils
post-install:
diff --git a/www/py-wsgidav/Makefile b/www/py-wsgidav/Makefile
index b86c12d8ad9d..b8ea8c62b3c9 100644
--- a/www/py-wsgidav/Makefile
+++ b/www/py-wsgidav/Makefile
@@ -29,7 +29,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cheroot>=6.0:www/py-cheroot@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}tox>=2.0:devel/py-tox@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}WebTest>=2.0:www/py-WebTest@${PY_FLAVOR}
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
diff --git a/www/unit-python/Makefile b/www/unit-python/Makefile
index 2aa348400cf4..8a0ee218ed8c 100644
--- a/www/unit-python/Makefile
+++ b/www/unit-python/Makefile
@@ -7,7 +7,7 @@ UNIT_MODNAME= python${PYTHON_SUFFIX}
COMMENT= Python module for NGINX Unit
-USES= python gettext-runtime
+USES= python:3.6+ gettext-runtime
USE_PYTHON= flavors
PLIST_FILES= libexec/unit/modules/${UNIT_MODNAME}.unit.so
diff --git a/www/uwsgi/Makefile b/www/uwsgi/Makefile
index 31ec5f894a5e..1526c0380d30 100644
--- a/www/uwsgi/Makefile
+++ b/www/uwsgi/Makefile
@@ -13,7 +13,7 @@ COMMENT= Developer-friendly WSGI server which uses uwsgi protocol
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= pkgconfig python
+USES= pkgconfig python:3.6+
USE_PYTHON= distutils concurrent optsuffix
USE_RC_SUBR= uwsgi
diff --git a/www/uwsgitop/Makefile b/www/uwsgitop/Makefile
index 122dc3fa89d3..46ccd0984832 100644
--- a/www/uwsgitop/Makefile
+++ b/www/uwsgitop/Makefile
@@ -10,7 +10,7 @@ MASTER_SITES= CHEESESHOP
MAINTAINER= demon@FreeBSD.org
COMMENT= uWSGI top-like app
-USES= python
+USES= python:3.6+
USE_PYTHON= distutils concurrent optsuffix
PLIST_FILES= bin/uwsgitop %%DOCSDIR%%/README.rst