PackageNotes |
UserPreferences |
The PEAK Developers' Center | FrontPage | RecentChanges | TitleIndex | WordIndex | SiteNavigation | HelpContents |
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!
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.
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.
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:portAnother 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.
Yet another Windows experience. I had just installed python 2.5 on a machine with python 2.4, and updated PATH and PYTHONPATH to refer to the new installation. Next step was to download and run ez_setup.py. I wasn't sure where I should put it; I put it in 2.5's site-packages. Running ez_setup.py seemed to work fine, but afterwards easy_install always produced "ImportError: No module named pkg_resources". I moved ez_setup.py up to C:/Python25, ran it again, and now easy_install is happy. It looks like ez_setup.py should not be saved to and run from site-packages.
Same initial conditions (more or less, i.e., had just re-installed 2.5), same symptoms, even after moving ez_setup.py out of site-packages; turned out the problem was I didn't even have a PYTHONPATH environment variable defined at all! Defined it to be C:Python25 and now everything's working as advertised.
A Windows x64 problem: I've installed the Python 2.5 64 bit version for Windows. I downloaded ez_setup.py and ran it. Now when I'm trying to use it (just the easy_install binary with no arguments) I get this error message:
Cannot find Python executable C:\Python25\python.exe
Well, my python.exe is exactly on that path. Can this be a 32/64 bit issue? I.e. a 32-bit application trying to invoke a 64-bit application.
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
The package name is actually Imaging. Use the following command line to install it
easy_install -f http://www.pythonware.com/products/pil/ Imaging
Broken link? On OSX 10.5.1, I get
easy_install psyco Searching for psyco Reading http://pypi.python.org/simple/psyco/ Reading http://psyco.sourceforge.net/ Best match: psyco snapshot Downloading http://snake.cs.uni-duesseldorf.de/psyco/psyco-snapshot.tar.gz error: Unexpected HTML page found at http://snake.cs.uni-duesseldorf.de/psyco/psyco-snapshot.tar.gz
Sorry about the lack of formatting: I tried over a dozen times to get a code block displayed, but I kept getting an error. <sigh>
I don't know what I can do about the psyco error: I'm new to easy_install. --Clytie Siddall
OnOSX 10.5.2, the following easy-install, isn't 'easy'
prompt$ easy_install psycopg Searching for psycopg Reading http://pypi.python.org/simple/psycopg/ Reading http://initd.org/projects/psycopg1 Best match: psycopg 1.1.21 Downloading 'http://initd.org/pub/software/psycopg/psycopg-1.1.21.tar.gz' Processing psycopg-1.1.21.tar.gz 'error: Couldn't find a setup script in /var/folders/GM/GM5-RBdNFr8LCStaQL8Ea++++TI/-Tmp-/easy_install-BRg4VA/psycopg-1.1.21.tar.gz'
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.
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.
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 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
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.)
$ easy_install Python-2.4.3
Searching for python
Reading http://cheeseshop.python.org/pypi/python/
Couldn't find index page for 'python' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading http://cheeseshop.python.org/pypi/
Reading http://cheeseshop.python.org/pypi/Python/2.5
Reading http://www.python.org/2.5
Best match: Python 2.5
Downloading http://www.python.org/ftp/python/2.5/Python-2.5.tgz
Similar output for Python 2.4.3, python-2.4.3, etc.
Easy_Install does not parse source distribution(sdist) file versions properly under FTP. It tries to read FTP file listings, but fails.
For example, Easy_Install can't find python-memcached version 1.39 in the FTP list. There is a python-memcached-1.39.tar.gz in FTP, referred by PyPI:
$ easy_install python-memcached==1.39 Searching for python-memcached==1.39 Reading http://pypi.python.org/simple/python-memcached/ Reading http://www.tummy.com/Community/software/python-memcached/ Reading ftp://ftp.tummy.com/pub/python-memcached/ No local packages or download links found for python-memcached==1.39 error: Could not find suitable distribution for Requirement.parse('python-memcached==1.39')
Without any version limitation, it does find that same python-memcached as the "latest". There is a python-memcached-latest.tar.gz found in FTP:
$ easy_install 'python-memcached' Searching for python-memcached Reading http://pypi.python.org/simple/python-memcached/ Reading http://www.tummy.com/Community/software/python-memcached/ Reading ftp://ftp.tummy.com/pub/python-memcached/ Best match: python-memcached latest Downloading ftp://ftp.tummy.com/pub/python-memcached/python-memcached-latest.tar.gz .... Installed /home/adroffne/python-work/try-distutils/test-site/lib/python_memcached-1.39-py2.5.egg
(The actual issue is that setuptools.package_index cannot convert FTP directory listings into URLs.)
I installed amara on FC7 and fell foul of the selinux security package.
This is the log entry from selinux.
SummarySELinux is preventing the python from using potentially mislabeled files (/usr/lib/python2.5/site-packages/Amara-1.2.0.2-py2.5.egg).
Detailed Description
SELinux has denied python access to potentially mislabeled file(s) (/usr/lib/python2.5/site-packages/Amara-1.2.0.2-py2.5.egg).
This means that SELinux will not allow python to use these files. It is common for users to edit files in their home directory or tmp directories and then move (mv) them to system directories. The problem is that the files end up with the wrong file context which confined applications are not allowed to access.
Allowing Access
If you want python to access this files, you need to relabel them using restorecon -v /usr/lib/python2.5/site-packages/Amara-1.2.0.2-py2.5.egg. You might want to relabel the entire directory using restorecon -R -v /usr/lib/python2.5/site-packages.
I guess this could happen with easy_install on any package in a Fedora system? No mention of it whilst installing? Might be good to let users know.
The magic .exe wrapper files tend to get in the way on these platforms. I would find it easier to use setuptools if they were not there at all.
The problem is that those .exe wrapper files need to run as admin, even though the installation script usually doesn't need those rights. That means confirming every action. Even worse, when you run an executable as admin from a shell, it gets launched into its own process, thus creating a new window. When it terminates, it takes its window with it.
Therefore, you never get to see any command-line output - the widow closes as soon as it appears.
As such, the .exe wrappers are entirely unusable. Unfortunately, they take over the easy-to-type names. Is it possible to make the .exe wrappers only elevate to admin privs when they need them (which is never, in my experience so far)?
Because I can't use the .exe wrappers, I run into another problem. Fixing those wrappers would probably hide the problem below again.
It is hard to override the Windows approach to discovering which application to use to launch a particular document. If I always and only wanted one Python install, then I can (and do) just add .py to the cmdspec env variable. Because .py is associated with my system Python, then I can just type
scriptname args
at the shell & it'll run
python.exe path\to\scriptname.py args
(Sometimes I have to fix up the open command for .py files so that it'll pass those args along.)
However, I don't know of any good solution when I'm running multiple Pythons (via virtualenv). Short of PowerShell, there isn't a good way to change which python will be used to run .py files (in the registry). And when you just run a script, Windows chooses the executable, based on the registry.
Does anyone have any good idea how to get multiple virtualenvs to work on Windows, without having to type python fullpathtoscript.py every time?
I installed python-sybase 0.39 (found on sourceforge, not automatically installed) on Solaris with Python 2.5.2 and setuptools 0.6c8. It made a single file called python_sybase-0.39-py2.5-solaris-2.10-sun4u.egg in the site-packages directory.
Later, a user found that his software was not compatible with the latest python-sybase, so he tried to point his PYTHONPATH at a directory that contained an older version. It kept picking up the newer version, though and he eventually asked me to remove the new version from the system so he could get his program to work.
The problem turns out to be that something puts all the .egg files on sys.path AHEAD of the directories that are in PYTHONPATH. Consequently, PYTHONPATH can never override them.
I found that I could make it work by 1) removing the .egg file from site-packages, or 2) altering sys.path from my python program before doing the import.
When doing easy_install path.py it didnt find anything - but it should find http://pypi.python.org/pypi/path.py ----> http://pypi.python.org/packages/source/p/path.py/path-2.2.zip#md5=941660081788282887f652510d80e64e