Re: [Distutils] setuptools passing arguments/settings to dependencies' dependencies
At 05:36 AM 5/4/2010 -0700, Kent wrote:
Something seems to have changed with a recent release of setuptools. I recently upgraded to -0.6c11 from c9.
Under c9, my setup.cfg could specify this:
[easy_install] find_links = ../../thirdparty
in order to direct setuptools to install from the ../../thirdparty directory instead of searching the internet. This worked for my project's dependencies and the dependencies' dependencies.
Now, under c11, settings in the setup.cfg only pass to my project's direct dependencies (install_requires=[] list).
They no longer are passed to those dependencies' dependencies.
What happened? I've googled and googled and am having no luck. Is my assertion correct?
I need more information than this to understand what you mean. Are you talking about running from "setup.py install", or using "easy_install myproject"? What exactly are the dependencies, and the contents of the thirdparty directory?
P.S. I also can't find an official PEAK software setuptools forum... is this the best forum to ask this question?
From http://peak.telecommunity.com/DevCenter/setuptools#mailing-list-and-bug-trac... : "Please use the http://mail.python.org/pipermail/distutils-sig/distutils-sig mailing list for questions and discussion about setuptools"
I am building a turbogears project application.
My setup.py looked something like this:
==============================================================
# -*- coding: utf-8 -*-
try:
from setuptools import setup, find_packages
except ImportError:
from ez_setup import use_setuptools
use_setuptools()
from setuptools import setup, find_packages
setup(
name='appname',
version='0.1',
description='',
author='',
author_email='',
#url='',
install_requires=[
#kb start
"SQLAlchemy >= 0.6",
"tg.devtools >= 2.0.1",
"psycopg2 >= 2.0.11",
"TurboGears2 >= 2.0.1.1",
"Catwalk >= 2.0.2",
"Babel >=0.9.4",
#can be removed iif use_toscawidgets = False
"toscawidgets >= 0.9.7.1",
"zope.sqlalchemy >= 0.4 ",
"repoze.tm2 >= 1.0a4",
"xmllayout >= 0.3",
"repoze.what-quickstart >= 1.0",
"sprox >= 0.6.6",
"BeautifulSoup", "fixture"
#kb stop
],
setup_requires=["PasteScript >= 1.7"],
paster_plugins=['PasteScript', 'Pylons', 'TurboGears2',
'tg.devtools'],
packages=find_packages(exclude=['ez_setup']),
include_package_data=True,
test_suite='nose.collector',
tests_require=['WebTest', 'BeautifulSoup'],
package_data={'pylotengine': ['i18n/*/LC_MESSAGES/*.mo',
'templates/*/*',
'public/*/*']},
message_extractors={'pylotengine': [
('**.py', 'python', None),
('templates/**.mako', 'mako', None),
('templates/**.html', 'genshi', None),
('public/**', 'ignore', None)]},
entry_points="""
[paste.app_factory]
main = pylotengine.config.middleware:make_app
[paste.app_install]
main = pylons.util:PylonsInstaller
""",
)
==============================================================
Because I want a consistent platform, I save all eggs/tars in a
thirdparty/ directory and when someone runs "python setup.py install"
or "python setup.py develop" with the above file, I wish for
dependencies to be taken *only* from my ../../thirdparty folder, and
*not* fetched from the internet.
This guarantees no updated thirdparty dependency will be the sole
cause of something breaking that was working.
To accomplish this, with version c9, I added the following lines to
setup.cfg:
-------------------------------------------
[easy_install]
find_links = ../../thirdparty
-------------------------------------------
This used to work until I upgrade setuptools to version c11. Now,
when a dependency (for example, "tg.devtools >= 2.0.1", from the above
'install_requires' list) is being installed, it has its own
dependencies, such as
install_requirements = [
'TurboGears2 >= 2.0.1',
'sqlalchemy-migrate >= 0.5.1',
'SQLAlchemy >= 0.5',
'repoze.what-quickstart >= 1.0',
'repoze.who >= 1.0.10'
]
and each of these can have their own requirements.
setuptools used to pass my find_links = ../../thirdparty command down
to all these dependencies and their dependencies, such that when
looking for 'repoze.who >= 1.0.10' (a dependency listed above, for my
"tg.devtools >= 2.0.1" dependency), easy_setup would know to look in
"../../thirdparty".
In c11, it no longer seems to pass this "find_links = ../../
thirdparty" along to dependencies to search for their dependencies.
Now, I've worked around this by placing code in my setup.py that
dynamically creates and deletes a '~/.pydistutils.cfg' file. I
discovered that what I really wanted was 'index_url' instead of
'find_links', so my '~/.pydistutils.cfg' looks like this:
[easy_install]
index_url =
At 05:36 AM 5/4/2010 -0700, Kent wrote:
Something seems to have changed with a recent release of setuptools. I recently upgraded to -0.6c11 from c9.
Under c9, my setup.cfg could specify this:
[easy_install] find_links = ../../thirdparty
in order to direct setuptools to install from the ../../thirdparty directory instead of searching the internet. This worked for my project's dependencies and the dependencies' dependencies.
Now, under c11, settings in the setup.cfg only pass to my project's direct dependencies (install_requires=[] list).
They no longer are passed to those dependencies' dependencies.
What happened? I've googled and googled and am having no luck. Is my assertion correct?
I need more information than this to understand what you mean. Are you talking about running from "setup.py install", or using "easy_install myproject"? What exactly are the dependencies, and the contents of the thirdparty directory?
P.S. I also can't find an official PEAK software setuptools forum... is this the best forum to ask this question?
Fromhttp://peak.telecommunity.com/DevCenter/setuptools#mailing-list-and-b... :
"Please use the http://mail.python.org/pipermail/distutils-sig/distutils-sig mailing list for questions and discussion about setuptools"
_______________________________________________ Distutils-SIG maillist - Distutils-...@python.orghttp://mail.python.org/mailman/listinfo/distutils-sig
-- You received this message because you are subscribed to the Google Groups "distutils-sig" group. To post to this group, send email to distutils-sig@googlegroups.com. To unsubscribe from this group, send email to distutils-sig+unsubscribe@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/distutils-sig?hl=en.
participants (2)
-
Kent
-
P.J. Eby