Skip to content

Instantly share code, notes, and snippets.

@jfunez
Forked from rochacbruno/Makefile
Created December 1, 2015 18:01
Show Gist options
  • Save jfunez/833b738672a64288d938 to your computer and use it in GitHub Desktop.
Save jfunez/833b738672a64288d938 to your computer and use it in GitHub Desktop.
Perfect setup.py
import pip
try:
from setuptools import setup, find_packages
except ImportError:
from distutils.core import setup, find_packages
links = [] # for repo urls (dependency_links)
requires = [] # for package names
try:
requirements = pip.req.parse_requirements('requirements.txt')
except:
# new versions of pip requires a session
requirements = pip.req.parse_requirements(
'requirements.txt', session=pip.download.PipSession()
)
for item in requirements:
if getattr(item, 'url', None): # older pip has url
links.append(str(item.url))
if getattr(item, 'link', None): # newer pip has link
links.append(str(item.link))
if item.req:
requires.append(str(item.req)) # always the package name
setup(
name='My Porject',
version="0.0.0", # avoid reading version from __init__.py it belongs here
url='https://github.com/myname/myproject', # repo is prefered over project site
license='FREE',
author="Super Man",
author_email="me@world.com",
description='Awesome project', # small description, avoid extra read from outer file
long_description="Python rulez", # it needs to be an .rst file open().read() from somewhere
packages=find_packages(),
include_package_data=True,
zip_safe=False,
platforms='any',
install_requires=requires,
dependency_links=links
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment