Warning: Can't synchronize with repository "(default)" (Unsupported version control system "svn": No module named svn). Look in the Trac log for more information.

Ticket #2252 (closed defect: fixed)

Opened 10 years ago

Last modified 10 years ago

TG2 Installation Issues

Reported by: pedersen Owned by:
Priority: normal Milestone:
Component: TurboGears Version: 2.0
Severity: normal Keywords:
Cc:

Description

I apologize if this information is duplicated across other tickets. I did search, but was unable to find these errors listed. I also found that I needed to modify all URLs, so as to get them past the spam filter. They're all the same link, pointing back to TurboGears web site, but that's not something consider by the spam filter.

Following the directions here:  http://www.turbogears.org/2.0/docs/main/DownloadInstall.html

Installation is very difficult to complete. Using the automatic installation and the manual installation results in the same errors. The first one is known, and is the "repoze.who" error. The remainder, though, is problematic. I find that I must go through the following steps to make it work:

(virtualenv and activate get completed, then)

easy_install -i http : / / www.turbogears.org/2.0/downloads/current/index tg.devtools

(repoze.who errors)

easy_install -i http : / / www.turbogears.org/2.0/downloads/current/index tg.devtools

Searching for prioritized-methods>=0.2
Reading http : / /www.turbogears.org/2.0/downloads/current/index/prioritized_methods/
Reading http : / /www.turbogears.org/2.0/downloads/current/index/prioritized-methods/
Couldn't retrieve index page for 'prioritized_methods'
Scanning index of all packages (this may take a while)
Reading http : / /www.turbogears.org/2.0/downloads/current/index/
No local packages or download links found for prioritized-methods>=0.2
error: Could not find suitable distribution for Requirement.parse('prioritized-methods>=0.2')

easy_install "prioritized-methods>=0.2"

This succeeds, so back to

easy_install -i http : / / www.turbogears.org/2.0/downloads/current/index tg.devtools

Installed /home/mpedersen/tg2env/lib/python2.5/site-packages/WebOb-0.9.5-py2.5.egg
error: Installed distribution simplejson 1.9.1 conflicts with requirement simplejson>=2.0.4

easy_install "simplejson>=2.0.4"

This succeeds, so back to

easy_install -i http : / / www.turbogears.org/2.0/downloads/current/index tg.devtools

Processing dependencies for tg.devtools
error: Installed distribution WebOb 0.9.5 conflicts with requirement WebOb>=0.9.6.1

easy_install "WebOb?>=0.9.6.1"

This succeeds, so back to

easy_install -i http : / / www.turbogears.org/2.0/downloads/current/index tg.devtools

Searching for PasteDeploy>=1.3.3
Reading http://www.turbogears.org/2.0/downloads/current/index/PasteDeploy/
No local packages or download links found for PasteDeploy>=1.3.3
error: Could not find suitable distribution for Requirement.parse('PasteDeploy>=1.3.3')

easy_install "PasteDeploy?>=1.3.3"

This succeeds, so back to

easy_install -i http : / / www.turbogears.org/2.0/downloads/current/index tg.devtools

Searching for Beaker>=1.2.2
Reading http://www.turbogears.org/2.0/downloads/current/index/Beaker/
No local packages or download links found for Beaker>=1.2.2
error: Could not find suitable distribution for Requirement.parse('Beaker>=1.2.2')

easy_install "Beaker>=1.2.2"

This succeeds, so back to

easy_install -i http : / / www.turbogears.org/2.0/downloads/current/index tg.devtools

Searching for WebHelpers>=0.6.4
Reading http://www.turbogears.org/2.0/downloads/current/index/WebHelpers/
No local packages or download links found for WebHelpers>=0.6.4
error: Could not find suitable distribution for Requirement.parse('WebHelpers>=0.6.4')

easy_install "WebHelpers?>=0.6.4"

This succeeds, so back to

easy_install -i http : / / www.turbogears.org/2.0/downloads/current/index tg.devtools

Searching for Routes>=1.10.3
Reading http://www.turbogears.org/2.0/downloads/current/index/Routes/
No local packages or download links found for Routes>=1.10.3
error: Could not find suitable distribution for Requirement.parse('Routes>=1.10.3')

easy_install "Routes>=1.10.3"

This succeeds, so back to

easy_install -i http : / / www.turbogears.org/2.0/downloads/current/index tg.devtools

And this finally succeeds. "paster --help" gives a traceback, though, complaining about a missing "Cheetah" package. This is fixed with

easy_install "Cheetah>=2.0.1"

To get a clean environment, I'm taking the following steps right now:

virtualenv --no-site-packages tg2env
cd tg2env
source bin/activate
easy_install "repoze.who"
easy_install "prioritized-methods>=0.2"
easy_install "simplejson>=2.0.4"
easy_install "WebOb>=0.9.6.1"
easy_install "PasteDeploy>=1.3.3"
easy_install "Beaker>=1.2.2"
easy_install "WebHelpers>=0.6.4"
easy_install "Routes>=1.10.3"
easy_install "Cheetah>=2.0.1"
easy_install -i http : / / www.turbogears.org/2.0/downloads/current/index tg.devtools

That will finally get an installation where "paster --help" runs to completion without error, and produce no errors during the install process.

Change History

comment:1 Changed 10 years ago by pedersen

  • Status changed from new to closed
  • Resolution set to fixed

I've just built another virtualenv at home, and got 2.0b7. This version was able to be installed using just the following commands:

virtualenv --no-site-packages tg2env
cd tg2env
source bin/activate
easy_install -i http://www.turbogears.org/2.0/downloads/current/index tg.devtools

And that was it. It followed the documentation correctly. I'm happy with the result, so am going to close this ticket, and say thank you.

comment:2 Changed 10 years ago by abelcodemonk

  • Status changed from closed to reopened
  • Version changed from 2.0b6 to 2.0
  • Resolution fixed deleted
  • Milestone 2.0rc1 deleted

The install is broken again. Like before, it fails due to dependent packages version problems. Now, you need to do:

easy_install simplejson
easy_install -i http://www.turbogears.org/2.0/downloads/current/index tg.devtools
easy_install -U ToscaWidgets

in order for everytihng to succeed

comment:3 Changed 10 years ago by jorge.vargas

  • Status changed from reopened to closed
  • Resolution set to fixed

This is working for me. This is really a problem with easy_install which we hope distribute will finally fix. Until then it will give some problems sometimes. If you see it again please post a traceback of the error.

comment:4 Changed 10 years ago by abelcodemonk

It's not really a problem with easy_install, it's a problem with the dependencies. In other words, you could fix it while still using easy_install (although distribute might make it easier). TG depends on a large number of libraries, some of which also depend on each other. When you initially release, everything works fine, but then libraries release new versions.

At that point, TG indicates that it wants the latest verson of its library, and that gets met immediately. However, one of its libraries ends up wanting a specific version of another of its libraries. Conflict, and sometimes the install of one version screws up the install of another, and the whole thing fails.

The workaround works because the dependencies are resolvable: you just need the latest version of the library that both depend on.

You could work around this by requiring specific versions of all the libraries that a given version of TG uses. Sure, you wouldn't then automatically get bug fix releases for your dependencies, but at least the installs would work. If there's an important bug fix, then you can verify that the upgrade won't break TG installs, and only update your dependency page's required version then.

It is possible to fix without waiting until the world shifts off of easy_install. The question is whether you want to, or are willing to accept an install that works or breaks from week to week, depending on the release whims of your dependencies.

comment:5 Changed 10 years ago by mramm

If you use the index that we provide you should get versions of everything that are known to work together. Installing from pypi is not recommended for all the reasons you outline here.

easy_install or distribute or whatever could fix this by doing dependency version resolution before installing any packages, and picking a version that works with all the requirements if such a version exists. But it does not do that. IIRC pip attempts to do so, and this *is* one of the goals of distribute, but for now building our own index has been the "easy" way to solve the problem.

comment:6 Changed 10 years ago by abelcodemonk

I always installed using your index. Sometimes that worked; sometimes it didn't. Your index didn't require an exact version of each library, only a min version (at the time - haven't done it in a while). Thus, library releases occasionally broke things. Eventually, you'd notice & fix it, but you had a systematic vulnerability to bug.

Yeah, pip probably fixes things. Any idea what percentage of Python framework downloaders use each package manager? Or how many of them follow your directions (which would work), rather than just trying to get it the same way they've been installing packages for years?

comment:7 Changed 10 years ago by mramm

Hmm, if you were using our index you should not have gotten new versions of libraries unless they were added to our index, that was the whole reason to create an index.

It's possible that somebody had a dependency_url in their setup.py that we didn't catch and squash, thus providing another place for packages to come from, but apart from that or previously installed non-working versions, our index should be reliable even in the face of package updates because when you install from it you don't get newer packages.

Note: See TracTickets for help on using tickets.