author |
Steve Losh <steve@stevelosh.com> |
date |
Fri, 05 Mar 2010 07:05:44 -0500 |
parents |
4e1fb853d9d2 |
children |
(none) |
"""Installs CherryPy using distutils
Run:
python setup.py install
to install this package.
"""
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
from distutils.command.install import INSTALL_SCHEMES
import sys
import os
import shutil
required_python_version = '2.3'
###############################################################################
# arguments for the setup command
###############################################################################
name = "CherryPy"
version = "3.2.0rc1"
desc = "Object-Oriented HTTP framework"
long_desc = "CherryPy is a pythonic, object-oriented HTTP framework"
classifiers=[
#"Development Status :: 5 - Production/Stable",
"Development Status :: 4 - Beta",
"Environment :: Web Environment",
"Intended Audience :: Developers",
"License :: Freely Distributable",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Software Development :: Libraries :: Application Frameworks",
]
author="CherryPy Team"
author_email="team@cherrypy.org"
url="http://www.cherrypy.org"
cp_license="BSD"
packages=[
"cherrypy", "cherrypy.lib",
"cherrypy.tutorial", "cherrypy.test",
"cherrypy.wsgiserver", "cherrypy.process",
"cherrypy.scaffold",
]
download_url="http://download.cherrypy.org/cherrypy/3.2.0/"
data_files=[
('cherrypy', ['cherrypy/cherryd',
'cherrypy/favicon.ico',
'cherrypy/LICENSE.txt',
]),
('cherrypy/process', []),
('cherrypy/scaffold', ['cherrypy/scaffold/example.conf',
'cherrypy/scaffold/site.conf',
]),
('cherrypy/scaffold/static', ['cherrypy/scaffold/static/made_with_cherrypy_small.png',
]),
('cherrypy/test', ['cherrypy/test/style.css',
'cherrypy/test/test.pem',
]),
('cherrypy/test/static', ['cherrypy/test/static/index.html',
'cherrypy/test/static/dirback.jpg',]),
('cherrypy/tutorial',
[
'cherrypy/tutorial/tutorial.conf',
'cherrypy/tutorial/README.txt',
'cherrypy/tutorial/pdf_file.pdf',
'cherrypy/tutorial/custom_error.html',
]
),
]
###############################################################################
# end arguments for setup
###############################################################################
def fix_data_files(data_files):
"""
bdist_wininst seems to have a bug about where it installs data files.
I found a fix the django team used to work around the problem at
http://code.djangoproject.com/changeset/8313 . This function
re-implements that solution.
Also see http://mail.python.org/pipermail/distutils-sig/2004-August/004134.html
for more info.
"""
def fix_dest_path(path):
return '\\PURELIB\\%(path)s' % vars()
if not 'bdist_wininst' in sys.argv: return
data_files[:] = [
(fix_dest_path(path), files)
for path, files in data_files]
fix_data_files(data_files)
def main():
if sys.version < required_python_version:
s = "I'm sorry, but %s %s requires Python %s or later."
print s % (name, version, required_python_version)
sys.exit(1)
# set default location for "data_files" to
# platform specific "site-packages" location
for scheme in INSTALL_SCHEMES.values():
scheme['data'] = scheme['purelib']
dist = setup(
name=name,
version=version,
description=desc,
long_description=long_desc,
classifiers=classifiers,
author=author,
author_email=author_email,
url=url,
license=cp_license,
packages=packages,
download_url=download_url,
data_files=data_files,
scripts=[os.path.join("cherrypy", "cherryd")],
)
if __name__ == "__main__":
main()