Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use Python's "easy_install" on Windows ... it's not so easy

After installing Python 2.7 on Windows XP, then manually setting the %PATH% to python.exe (why won't the python installer do this?), then installing setuptools 0.6c11 (why doesn't the python installer do this?), then manually setting the %PATH% to easy_install.exe (why doesn't the installer do this?), I finally tried to install a python package with easy_install, but easy_install failed when it couldn't install the pywin32 package, which is a dependency. How can I make easy_install work properly on Windows XP? The failure follows:

C:\>easy_install winpexpect Searching for winpexpect Best match: winpexpect 1.4 Processing winpexpect-1.4-py2.7.egg winpexpect 1.4 is already the active version in easy-install.pth  Using c:\python27\lib\site-packages\winpexpect-1.4-py2.7.egg Processing dependencies for winpexpect Searching for pywin32>=214 Reading http://pypi.python.org/simple/pywin32/ Reading http://sf.net/projects/pywin32 Reading http://sourceforge.net/project/showfiles.php?group_id=78018 No local packages or download links found for pywin32>=214 Best match: None Traceback (most recent call last):   File "C:\python27\scripts\easy_install-script.py", line 8, in      load_entry_point('setuptools==0.6c11', 'console_scripts', 'easy_install')()   File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 1712, in main     with_ei_usage(lambda:   File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 1700, in with_ei_usage     return f()   File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 1716, in      distclass=DistributionWithoutHelpCommands, **kw   File "C:\python27\lib\distutils\core.py", line 152, in setup     dist.run_commands()   File "C:\python27\lib\distutils\dist.py", line 953, in run_commands     self.run_command(cmd)   File "C:\python27\lib\distutils\dist.py", line 972, in run_command     cmd_obj.run()   File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 211, in run     self.easy_install(spec, not self.no_deps)   File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 446, in easy_install     return self.install_item(spec, dist.location, tmpdir, deps)   File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 481, in install_item     self.process_distribution(spec, dists[0], deps, "Using")   File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 519, in process_distribution     [requirement], self.local_index, self.easy_install   File "C:\python27\lib\site-packages\pkg_resources.py", line 563, in resolve     dist = best[req.key] = env.best_match(req, self, installer)   File "C:\python27\lib\site-packages\pkg_resources.py", line 799, in best_match     return self.obtain(req, installer) # try and download/install   File "C:\python27\lib\site-packages\pkg_resources.py", line 811, in obtain     return installer(requirement)   File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 434, in easy_install     self.local_index   File "C:\python27\lib\site-packages\setuptools\package_index.py", line 475, in fetch_distribution     return dist.clone(location=self.download(dist.location, tmpdir)) AttributeError: 'NoneType' object has no attribute 'clone' 
like image 686
Nick Avatar asked Oct 25 '10 15:10

Nick


People also ask

Is easy_install deprecated?

easy_install, now deprecated, was released in 2004 as part of setuptools. It was notable at the time for installing packages from PyPI using requirement specifiers, and automatically installing dependencies.

How do I set up setuptools for Python on Windows?

Follow the below steps to install the Setuptools on Windows using the setup.py file: Step 1: Download the latest source package of Setuptools for Python3 from here. Step 2: Extract the downloaded package using the given command. Step 3: Go to the setuptools-60.2.

How do I install Setuptools on Windows?

The recommended way to install setuptools on Windows is to download ez_setup.py and run it. The script will download the appropriate . egg file and install it for you. Once installation is complete, you will find an easy_install program in your Python Scripts subdirectory.


2 Answers

If you are using windows 7 64-bit version, then the solution is found here: http://pypi.python.org/pypi/setuptools

namely, you need to download a python script, run it, and then easy_install will work normally from commandline.

P.S. I agree with the original poster saying that this should work out of the box.

like image 115
Gabriel Avatar answered Sep 24 '22 22:09

Gabriel


One problem is that easy_install is set up to download and install .egg files or source distributions (contained within .tgz, .tar, .tar.gz, .tar.bz2, or .zip files). It doesn't know how to deal with the PyWin32 extensions because they are put within a separate installer executable. You will need to download the appropriate PyWin32 installer file (for Python 2.7) and run it yourself. When you run easy_install again (provided you have it installed right, like in Sergio's instructions), you should see that your winpexpect package has been installed correctly.

Since it's Windows and open source we are talking about, it can often be a messy combination of install methods to get things working properly. However, easy_install is still better than hand-editing configuration files, for sure.

like image 24
Brandon Avatar answered Sep 23 '22 22:09

Brandon