Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Switched setup.py to setuptools. #2116

Merged
merged 3 commits into from

5 participants

@apollo13
Owner

This should allow windows users to easily invoke django-admin without (in the worst case) having to type:
c:\python\python.exe c:\python\scripts\django-admin.py startproject

@timgraham
Owner

Do we need zip_safe=False ala #13587?

@apollo13
Owner

python setup.py sdist 2>&1|grep "module references __file__" shows no warning, when is that output generated normally? I think zip_safe did also prevent .eggs which is a good thing, so we might wanna add it again? /cc @dstufft

@timgraham
Owner

The warning is output when running setup.py install. As you mentioned, my understanding is this will prevent from installing as an egg which causes problem for loading templates.

@apollo13
Owner

I don't get the warning, but I did set zip_safe=False again.

@aaugustin aaugustin merged commit 66f546b into django:master
@remram44

This changes the "django-admin.py" command to "django-admin"... it means a lot of documentation needs to be updated.

@dangra dangra referenced this pull request in scrapy/scrapy
Merged

[WIP] Modernize setup.py #836

1 of 1 task complete
@getcwd

Would you care to update the documents to state that now Django 1.7 depends on setuptools which doesn't come with Python versions that are less than 3.4?

At least docs/topics/install.txt and docs/intro/install.txt should be updated. There may be other places like docs/howto/windows.txt also need update too.

Owner

@getcwd I don't think that's necessary, pip requires setuptools and is the suggested installation method. As for windows: I don't use it, so no idea what is needed there (but pip works there too)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Dec 26, 2013
  1. @apollo13
Commits on Dec 29, 2013
  1. @apollo13
Commits on Dec 31, 2013
  1. @apollo13
This page is out of date. Refresh to see the latest.
Showing with 9 additions and 53 deletions.
  1. +1 −1  extras/Makefile
  2. +8 −52 setup.py
View
2  extras/Makefile
@@ -4,6 +4,6 @@ sdist:
python setup.py sdist
bdist_wheel:
- python -c "import setuptools;__file__='setup.py';exec(compile(open(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec'))" bdist_wheel
+ python setup.py bdist_wheel --skip-scripts
.PHONY : sdist bdist_wheel
View
60 setup.py
@@ -1,7 +1,7 @@
import os
import sys
-from distutils.core import setup
+from setuptools import setup, find_packages
from distutils.sysconfig import get_python_lib
# Warn if we are installing over top of an existing installation. This can
@@ -23,59 +23,11 @@
break
-def fullsplit(path, result=None):
- """
- Split a pathname into components (the opposite of os.path.join)
- in a platform-neutral way.
- """
- if result is None:
- result = []
- head, tail = os.path.split(path)
- if head == '':
- return [tail] + result
- if head == path:
- return result
- return fullsplit(head, [tail] + result)
-
-
EXCLUDE_FROM_PACKAGES = ['django.conf.project_template',
'django.conf.app_template',
'django.bin']
-def is_package(package_name):
- for pkg in EXCLUDE_FROM_PACKAGES:
- if package_name.startswith(pkg):
- return False
- return True
-
-
-# Compile the list of packages available, because distutils doesn't have
-# an easy way to do this.
-packages, package_data = [], {}
-
-root_dir = os.path.dirname(__file__)
-if root_dir != '':
- os.chdir(root_dir)
-django_dir = 'django'
-
-for dirpath, dirnames, filenames in os.walk(django_dir):
- # Ignore PEP 3147 cache dirs and those whose names start with '.'
- dirnames[:] = [d for d in dirnames if not d.startswith('.') and d != '__pycache__']
- parts = fullsplit(dirpath)
- package_name = '.'.join(parts)
- if '__init__.py' in filenames and is_package(package_name):
- packages.append(package_name)
- elif filenames:
- relative_path = []
- while '.'.join(parts) not in packages:
- relative_path.append(parts.pop())
- relative_path.reverse()
- path = os.path.join(*relative_path)
- package_files = package_data.setdefault('.'.join(parts), [])
- package_files.extend([os.path.join(path, f) for f in filenames])
-
-
# Dynamically calculate the version based on django.VERSION.
version = __import__('django').get_version()
@@ -89,9 +41,12 @@ def is_package(package_name):
description=('A high-level Python Web framework that encourages '
'rapid development and clean, pragmatic design.'),
license='BSD',
- packages=packages,
- package_data=package_data,
- scripts=['django/bin/django-admin.py'],
+ packages=find_packages(exclude=EXCLUDE_FROM_PACKAGES),
+ include_package_data=True,
+ entry_points={'console_scripts': [
+ 'django-admin = django.core.management:execute_from_command_line',
+ ]},
+ zip_safe=False,
classifiers=[
'Development Status :: 3 - Alpha',
'Environment :: Web Environment',
@@ -113,6 +68,7 @@ def is_package(package_name):
],
)
+
if overlay_warning:
sys.stderr.write("""
Something went wrong with that request. Please try again.