The PEAK Developers' Center   PackageNotes UserPreferences
 
HelpContents Search Diffs Info Edit Subscribe XML Print View
Version as of 2007-05-28 18:03:39

Clear message


EasyInstall Experience Reports

Feel free to edit this page to add your successes and problems installing packages with EasyInstall. Please try to keep the lists in alphabetic order, for the convenience of people who are looking to see if success has already been reported for a particular package.

NOTE: If you received a "Could not find distribution" message, please check the PyPI listing for the package before reporting it broken. If neither the Home Page nor Download URL links go directly to pages that contain links to the package's distribution files, you will need to download the package directly. Please contact the package's author directly, and ask them to update their PyPI information to include a current home page and download page. Packages distributed via Sourceforge should have a "Download URL" pointing to their project's "showfiles.php" page.

Note also that EasyInstall does not follow links on "This project has moved" redirection pages; please ask the author to fix their PyPI entries!

Installed, Appeared OK

Installation Notes/Issues

Note that some packages (including ones listed above) contain other information besides Python packages in their distribution files, such as documentation, scripts, sample data, etc. These other files are not installed by EasyInstall, so if you want to access them, you will need to download the distribution, and then give its filename to Easy Install to do the installation. You can then extract and use any other files you need direct from the original distribution.)

If you are responsible for any of the following packages, please consider making changes so that your downstream users can use EasyInstall to install them. If you're a user of one of these packages, please consider contributing a patch to the package's authors to make them compatible.

beautifulsoup 2.1.0
Bails out from a unit test. When running outside of easy_install the tests still fail, but the installation continues.
ctypes 0.9.6
Will install if you use give the package's exact download URL. (The PyPI package information for ctypes doesn't link to a page with usable download URLs; it should be changed to point to the showfiles.php page on SourceForge.) Also, ctypes is unusual in that its .tar.gz and its .zip distributions are for different platforms - the .zip version is for Windows, and the .tar.gz is for other platforms. For Windows, this is not a big problem, because as of 0.5a2, EasyInstall supports installing from distutils-generated .win32.exe files, but you may encounter problems on other platforms if EasyInstall picks up the .zip instead of the .tar.gz. If all else fails, give EasyInstall the exact download URL.
easyinstall/ez_setup
On Windows XP behind a SOCKS & HTTP proxy, I essentially failed to install setuptools or easyinstall. The ez_setup script tries to connect to the Internet and times out while it can't. I manually downloaded setuptools-0.6a11-py2.4.egg and placed it in the same folder as ez_setup.py. In such case I would expect that it would just "unegg" and install that file but it didn't. So I found myself in a typical chicken-and-egg problem: in order to be able to install another .egg file, I have to install an .egg file. I would very much prefer if easyinstall did not use easyinstall itself but relied on a simple disutils setup.py. Or even better, there could be an .exe installer for setuptools so that users don't have to struggle to install setuptools.

System Message: WARNING/2 (data/backup/PackageNotes.1180389819, line 63)

Block quote ends without a blank line; unexpected unindent.

I worked around this by replacing "to_dir=tmpdir" with "to_dir=os.curdir" in line 161 of ez_setup.py and it worked. I believe the ez_setup.py should first look in the current folder and only then in the temp folder for an existing .egg.

I got this to work by setting the environment var "http_proxy". On winxp that was

set http_proxy=http://user:password@proxy:port

Another windows issue (Windows XP and Windows 2003 SBE) easy_install fails to find the python executable because python is installed in c:program filesPython25 (or some other path with spaces I'd assume). It returns "Cannot find Python executable C:Program". But since it's an executable file I can't figure out where its reading the directory from. So while you can install using ez_setup fine, it won't find eggs once installed.

ipython-0.6.13

Appears to install correctly, but it's not clear to me if perhaps it expects users to edit the files in its IPython/UserConfig directory, or whether those are just templates.

They are templates that should be included as package_data. -- Robert Kern

ll-sisyphus-0.10.1
Author's name in package metadata includes an 8-bit character, which can't be written to PKG-INFO file
matplotlib-0.84.cvs

Create a lib/matplotlib/data/ directory in the source distribution. Move fonts/{afm,ttf}/. and images/. into lib/matplotlib/data/ . Edit lib/matplotlib/__init__.py

--- lib/matplotlib/__init__.py  13 Sep 2005 16:04:17 -0000      1.80
+++ lib/matplotlib/__init__.py  15 Sep 2005 08:16:25 -0000
@@ -367,6 +367,12 @@
         path = os.environ['MATPLOTLIBDATA']
         if os.path.isdir(path): return path

+    try:
+        import pkg_resources
+        return pkg_resources.resource_filename(__name__, 'data')
+    except ImportError:
+        pass
+
     path = os.path.join(distutils.sysconfig.PREFIX, 'share', 'matplotlib')
     if os.path.isdir(path): return path

And add the appropriate package_data argument to setup() in setup.py . -- Robert Kern

ModelingCore-0.9-pre-17.1
complains about cheetah-template not being found, and requires you to "Press ENTER to Continue". Apart from this, appears to install correctly. (The templates are intended to be compiled to .py files, which are then installed as part of the normal setup() process. But, it comes with pre-compiled versions of the templates, so it works fine except for the "press enter" thing.)
PEAK-0.5a4dev_r2085
peak test fails with an "IOError: [Errno 20] Not a directory" because RuleDispatch-0.5a0dev_r2083, an egg on which PEAK depends, installs as a zip, and the version of docutils included in PEAK isn't zip module savvy. Unzipping the RuleDispatch egg works around the problem.
PIL 1.1.5

The package name is actually Imaging. Use the following command line to install it

easy_install -f http://www.pythonware.com/products/pil/ Imaging
Pygame 1.7.1
Install works, but fails to install /usr/local/include/python2.3/pygame/* so other C modules from other projects won't compile.
pyparsing 1.4.6

When installing it seems to hang on 'Reading http://pyparsing.wikispaces.com/ - Using easy_install pyparsing.

I've now tracked it down to the fact that urllib2.urlopen("http://pyparsing.wikispaces.com") doesn't work. Fixes could be set socket.setdefaulttimeout(20) in easy_install.py and if you receive a 113 error, skip that url and move onto the next one.

[-- Sorry, but I think I've followed the rules properly. I've added pyparsing to the PyPI, with a Download URL pointing to the correct SourceForge showfiles page. Maybe easy_install should try the DownloadURL first, and then the project page. -- Paul McGuire --]

ReportLab-1.20
setup.py is in a third-level directory. Also, it tries to second-guess install locations, so even if it ran, it would require some hacking of its data file path munging code in setup.py. This would probably work fine if it were changed to use the de-facto standard hack for distutils.command.install_data, used by other packages to install data in their package directories.
SpreadModule-1.5
needs Spread include files already present/installed (might work if so)
scipy_core
Despite being listed on Cheese Shop, I can't get scipy_core to play. I have scipy_core 0.7.1.1517 installed from my own svn checkout, but doing pkg_resources.require("scipy_core") results in pkg_resources.DistributionNotFound: scipy-core and pkg_resources.require("scipy") results in pkg_resources.DistributionNotFound: scipy. I suspect this is because the distribution scipy_core actually installs a package named scipy. (But this doesn't explain whey pkg_resources.require("scipy") fails.) Is there some documentation about how pkg_resources actually finds packages? I want to allow other packages to say install-requires=['scipy_core>=0.6']
transitfeed
I'm the maintainer of the dist. We had a py2exe binary list at http://code.google.com/p/googletransitdatafeed/ with the name transitfeed-1.0.7-windows.zip and source dist in transitfeed-1.0.7.tar.gz. easy_install running in linux downloaded the zip instead of the tar.gz on the project homepage and the tar.gz on PyPI. It would be nice if easy_install was a little more clever in def find(req). For example, if two files look like the some version take the one on the index page. When not running on windows try to avoid .zip files. A guide to naming files to best avoid false matches would be nice.
turtle2.py
The name of the package isn't parseable, I guess: http://www.python.org/pypi/turtle2.py/1.0.0 (well, the package isn't actually setup with distutils; but easy_install bails out before it gets that far. Maybe PyPI should reject names like that.
Twisted-2.0.1
setup aborts, demanding that zope.interface be installed (maybe they will replace w/egg dependency in future?)
Twisted 2.1.0

setup fails, with text:

AttributeError: 'bool' object has no attribute 'name'

Basically this is because they use an extension mechanism that isn't supported by easy_install; see http://mail.python.org/pipermail/distutils-sig/2006-February/005960.html for more information.

Zope-X3.0.0
no setup.py
Zope Page Templates (zpt.sf.net) 1.4

non-conventional layout (the setup.py file is in the base python package). Package at http://prdownloads.sourceforge.net/zpt/ZopePageTemplates-1.4.0.tgz?download -- the setup file looks like this:

from distutils.core import setup

setup(
   name = 'ZopePageTemplates',
   maintainer = 'Kevin Smith',
   maintainer_email = 'Kevin.Smith@theMorgue.org',
   description = 'Zope Page Templates',

   extra_path = 'ZopePageTemplates',
   packages = ['.','TAL','ZTUtils'],
)

I'm guessing the extra_path part causes problems. It gets installed with no ZopePageTemplate package, instead it's all top-level packages. Well, maybe eggs are actually doing the right thing; but I've become so used to using --install-lib=... to install packages, and the ZopePageTemplates.pth statements gets ignored in that case, that I expect it to be contained in a package even though the setup file isn't really saying to do that. Hrm.

(PJE: This installer is hideously broken, as it aliases its contained packages onto sys.path; the correct and documented way to specify the behavior the author apparently desires would be:

packages = ['ZopePageTemplates', 'ZopePageTemplates.TAL', 'ZopePageTemplates.ZTUtils'],
package_dir = {'ZopePageTemplates':'.'},

without specifying an extra_path. This format would work fine with EasyInstall, but unfortunately EasyInstall cannot work around broken setup scripts. :(

Maybe the user should be advised that under Linux it should run easy_install.py instead of easy_install. Also the script easy_install.pyc gets installed into /usr/bin, it should be installed without execute mode or else when we are using bash it will appear in the $PATH.

Under Debian - and its derivatives - the package python-dev must be installed.

The user should also be explain that usually easy_install.py must be run with root previleges.

Anything With MinGW (and Cygwin?)

When building with MinGW/msys on Windows, I've always found that to compile/install source Python packages with C extensions, I need to do:

python setup.py build -cmingw32
python setup.py install --skip-build

EasyInstall doesn't know that that's required, and as such, I can't put together any eggs with C extensions.

As an example, I tried to EasyInstall the up-to-the-minute PEAK tarball, and got:

Downloading c:/temp/PEAK.tar.gz
Installing PEAK.tar.gz
error: Setup script exited with error: Python was built with version 7.1 of Visual Studio,
and extensions need to be built with the same version of the compiler, but it isn't installed.

That's the same error I get with any source C extension that I try to build with a standard setup.py install, and is the reason I need to compile in two steps as shown above

-- JayParlar

Jay, you need to edit your c:/Python2x/Lib/distutils/distutils.cfg file, and put the following into it:

[build]
compiler = mingw32

The distutils will then know that's what compiler you use, and you won't need to do two steps, with or without EasyInstall. (By the way, setup.py files can take multiple commands, so you could also have been using "python setup.py build -cmingw32 install" and you wouldn't have needed the --skip-build; that's the recipe I used to use before I found out about distutils.cfg. Anyway, builds that are run under EasyInstall support all the normal ways to specify distutils options, including the configuration files. See also the docs on Distutils Configuration Files in Python's manual for Installing Python Modules.

-- PJE

On Debian

On debian there is the policy of putting packages managed by dpkg/apt in /usr and locally installed stuff in /usr/local. python on debian therefor creates a /usr/local/pythonX.Y/site-packages for locally installed packages. When I use ez_install.py to install easyinstall or easy_install.py I would have to specifiy --install-dir and --script-dir each time to follow the policy. Any ideas how we can make it install in the right place with extra args? -- Myers Carpenter 2005-07-21T16:35:25

Edit your ~/.pydistutils.cfg to include the following:

[install]
prefix=/usr/local

[easy_install]
site-dirs=/usr/local/lib/pythonX.Y/site-packages

-- Robert Kern

HTML Tag Case Sensitivity in SourceForge Mirror Page

I couldn't get EasyInstall (v0.6a9) to download a package (NetworkX) from SourceForge because the mirror page had lowercase META HTTP-EQUIV tags. The following patch to setuptools/package_index.py fixed the problem:

diff -Naur setuptools-0.6a9/package_index.py setuptools-new/package_index.py
--- setuptools-0.6a9/package_index.py   2006-02-11 05:28:52.000000000 +0000
+++ setuptools-new/package_index.py     2006-02-11 05:29:30.000000000 +0000
@@ -491,12 +491,15 @@


     def _download_sourceforge(self, source_url, sf_page, tmpdir):
-        """Download package from randomly-selected SourceForge mirror"""
+        """Download package from randomly-selected SourceForge mirror. Matching
+        is case-insenstive to HTML tags as both lowercase and uppercase have
+        been seen in SourceForge's mirror page.
+        """

         self.debug("Processing SourceForge mirror page")

-        mirror_regex = re.compile(r'HREF="?(/.*?\?use_mirror=[^">]*)', re.I)
-        urls = [m.group(1) for m in mirror_regex.finditer(sf_page)]
+        mirror_regex = re.compile(r'(HREF|href)="?(/.*?\?use_mirror=[^">]*)', re.I)
+        urls = [m.group(2) for m in mirror_regex.finditer(sf_page)]
         if not urls:
             raise DistutilsError(
                 "URL looks like a Sourceforge mirror page, but no URLs found"
@@ -512,13 +515,13 @@

         f = self.open_url(url)
         match = re.search(
-            r'<META HTTP-EQUIV="refresh" content=".*?URL=(.*?)"',
+            r'<(META HTTP-EQUIV|meta http-equiv)="refresh" content=".*?URL=(.*?)"',
             f.read()
         )
         f.close()

         if match:
-            download_url = match.group(1)
+            download_url = match.group(2)
             scheme = URL_SCHEME(download_url)
             return self._download_url(scheme.group(1), download_url, tmpdir)
         else:

Catch-22 trying to follow Custom Installation Locations procedure

Using the recommended approach of Creating a "Virtual" Python gave me an error when running virtual-python.py:

$ python virtual-python.py --help
  Traceback (most recent call last):
    File "virtual-python.py", line 5, in ?
    import sys, os, optparse, shutil
    ImportError: No module named optparse

So apparently I need to install the optparse module, which would have to be in a custom installation location since I'm not root, in order to install modules in custom installation locations. Catch-22. Am I missing something? My host (he.net) has python 2.2.3 installed, and I do not have control over when they upgrade.

(Your problem is that you have Python 2.2, which is not supported. Setuptools requires Python 2.3 or better, with 2.3.5 being preferred.)


PythonPowered
EditText of this page (last modified 2007-05-28 18:03:39)
FindPage by browsing, title search , text search or an index
Or try one of these actions: AttachFile, DeletePage, LikePages, LocalSiteMap, SpellCheck