Am 18.06.2010 um 10:17 schrieb Gisborne:

Trying to start a 2.1b2 project. I get this:

Traceback (most recent call last):
 File "/Library/Frameworks/Python.framework/Versions/2.6/bin/paster",
line 8, in <module>
   load_entry_point('PasteScript==1.7.3', 'console_scripts', 'paster')
()
 File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/
command.py", line 73, in run
   commands = get_commands()
 File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/
command.py", line 115, in get_commands
   plugins = pluginlib.resolve_plugins(plugins)
 File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/
pluginlib.py", line 81, in resolve_plugins
   pkg_resources.require(plugin)
 File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
python2.6/site-packages/setuptools-0.6c11-py2.6.egg/pkg_resources.py",
line 666, in require
 File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
python2.6/site-packages/setuptools-0.6c11-py2.6.egg/pkg_resources.py",
line 569, in resolve
pkg_resources.VersionConflict: (SQLAlchemy 0.6.1 (/Library/Frameworks/
Python.framework/Versions/2.6/lib/python2.6/site-packages/
SQLAlchemy-0.6.1-py2.6.egg),
Requirement.parse('SQLAlchemy>=0.5.0,<=0.5.99'))

I *had* found a requirement in mapfish that looked like
SQLAlchemy>=0.5.0,<=0.5.99, but I deleted that line. The string
SQLAlchemy>=0.5.0,<=0.5.99 occurs nowhere in the project (checked with
grep, also for various substrings). There isn't obviously a way to get
an actually useful error message that would tell me where it's getting
the conflicting requirement.

The error messag sucks, that much is for sure. What you need to look at are requires.txt files inside eggs. If eggs are zipped, you need to unzip them. I use this little script to do that:

#!/bin/bash

# pass an eggfile, and extract it under the
# same name.

if [ "$1" = ]; then
    echo "Please give an EGG-file."
    exit 0
fi

if [  -f "$1" ]; then
    eggname=`basename $1`
    base_dir=`dirname $1`
    outdir=/tmp/egg_unzip$RANDOM
    unzip "$1" -d $outdir
    echo $outdir
    mv "$1" "$1.old"
    mkdir "$base_dir/$eggname"
    cp -r $outdir/* "$base_dir/$eggname"
    rm "$1.old"
    rm -rf $outdir
else
    echo "Not a file!"
fi

However, this is just part of the solution, it won't help you to know who has the requirement - because you need to fulfill it anyway. See below.



I would appreciate some advice (this is MacOS 10.6.3). I'm trying to
get started with TurboGears, and on this new Mac with hardly anything
installed on it, I've now been working at just launching this damn
project for four days now.

You should use virtualenvs for your project, with --no-site-packages as argument when creating them, to prevent system packages to shadow specific versions TG2 is interested in.

Honestly I think you should cleon out the Python interpreter's site- packages from SQLAlchemy and others, whoever wanted it in there should be installed in it's own Venv itself. Cluttering the sys.path with packages of all kind is a sure road to desparation. So whenever you install something pythony, use a dedicated venv. I created a little wrapper-script for that purpose, so I manage them all in one place.

Diez

--
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en.

Reply via email to