taichino / croniter

croniter is a python module to provide iteration for datetime object.
http://github.com/taichino/croniter
387 stars 105 forks source link

removed croniter dependancy on the setuptools package in setup.py #30

Closed pdunnigan closed 10 years ago

pdunnigan commented 10 years ago

in setup.py, install_requires contains setuptools. This is unnecessary and can cause problems under certain specific conditions.

First, I believe it is unnecessary because in the imports section at the very top of setup.py, setuptools is already referenced. Therefore this would not even run if setuptools was not already installs.

Second, the problem. I am attempting to install in an alternate location without root permissions on linux. I have passed all the available flags to specify the alternate location and also to ignore if already installed on the box. The problem is having setuptools as a install_requires will attempt to replace easy_install which is located in /usr/bin and owned by root.

I don't believe that this is the intention of using install_requires for setuptools and since it is already required to run python setup.py install, it's unnecessary.

thanks

kiorky commented 10 years ago

nope setuptools dep wont be removed, like in nearly 99% python packages out there.

pdunnigan commented 10 years ago

You are missing my point. This install script will not run in the first place unless setuptools is installed because it is part of the import section at the top:

# -*- coding: utf-8 -*-
import os
from setuptools import setup, find_packages

99% of packages do use setuptools, but none put it in the install_requires section of setup.

Of a sampling of the most popular python projects/packages on github (most starred) that use setuptools, absolutely none of them have setuptools in install_requires because they either put the setuptools import in a try/except or they assume it is there.

https://github.com/kennethreitz/requests/blob/master/setup.py https://github.com/tornadoweb/tornado/blob/master/setup.py https://github.com/fabric/fabric/blob/master/setup.py https://github.com/getpelican/pelican/blob/master/setup.py https://github.com/docopt/docopt/blob/master/setup.py https://github.com/tweepy/tweepy/blob/master/setup.py

I ask that you reconsider this.