Question

I'm trying to use the Fabric 0.1.1 deploy tool (http://docs.fabfile.org/) on Windows and we're running into an issue with the readline module. I've been through various threads but can't seem to solve the issue. It's important because we can't deploy applications from Windows based machines.

C:\Documents and Settings\dev\Desktop\deploy>fab
Traceback (most recent call last):
  File "C:\python\Scripts\fab-script.py", line 8, in <module>
    load_entry_point('fabric==0.1.1', 'console_scripts', 'fab')()
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\pkg_resources.py"
, line 277, in load_entry_point
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\pkg_resources.py"
, line 2180, in load_entry_point
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\pkg_resources.py"
, line 1913, in load
  File "build\bdist.win32\egg\fabric.py", line 25, in <module>
**ImportError: No module named readline**

Installing the module results in:

**easy_install readline**
Searching for readline
Reading http://pypi.python.org/simple/readline/
Reading http://www.python.org/
Best match: readline 2.6.4
Downloading http://pypi.python.org/packages/source/r/readline/readline-2.6.4.tar
.gz#md5=7568e8b78f383443ba57c9afec6f4285
Processing readline-2.6.4.tar.gz
Running readline-2.6.4\setup.py -q bdist_egg --dist-dir c:\docume~1\ji81b9~1.che
\locals~1\temp\easy_install-pzkz1a\readline-2.6.4\egg-dist-tmp-szs2ps
Traceback (most recent call last):
  File "C:\python\Scripts\easy_install-script.py", line 8, in <module>
    load_entry_point('setuptools==0.6c9', 'console_scripts', 'easy_install')()
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\setuptools\comman
d\easy_install.py", line 1671, in main
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\setuptools\comman
d\easy_install.py", line 1659, in with_ei_usage
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\setuptools\comman
d\easy_install.py", line 1675, in <lambda>
  File "c:\python\lib\distutils\core.py", line 152, in setup
    dist.run_commands()
  File "c:\python\lib\distutils\dist.py", line 975, in run_commands
    self.run_command(cmd)
  File "c:\python\lib\distutils\dist.py", line 995, in run_command
    cmd_obj.run()
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\setuptools\comman
d\easy_install.py", line 211, in run
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\setuptools\comman
d\easy_install.py", line 446, in easy_install
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\setuptools\comman
d\easy_install.py", line 476, in install_item
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\setuptools\comman
d\easy_install.py", line 655, in install_eggs
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\setuptools\comman
d\easy_install.py", line 930, in build_and_install
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\setuptools\comman
d\easy_install.py", line 919, in run_setup
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\setuptools\sandbo
x.py", line 27, in run_setup
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\setuptools\sandbo
x.py", line 63, in run
  File "c:\python\lib\site-packages\setuptools-0.6c9-py2.6.egg\setuptools\sandbo
x.py", line 29, in <lambda>
  File "setup.py", line 93, in <module>
AttributeError: 'module' object has no attribute 'symlink'

Has anybody solved this issue or can anybody suggest a workaround?

Was it helpful?

Solution

The readline module you are trying to install with easy_install is for OS X, not windows. There are Windows-compatible replacements for readline out there but perhaps you should first try updating fabric itself to a more current version (0.9 is out there now).

Grepping the source of the 0.9 version does not find any dependencies on readline.

OTHER TIPS

Following these steps exactly worked for me:

1) Installed using the MSI installer for x86 from here.

2) Installed in the default C:\Python27 directory.

3) Create a new directory: C:\Python27\Scripts

4) Added C:\Python27 and C:\Python27\Scripts to the system path:

Advanced system settings loading=Environment Variables>Path">

5) Download the distribute_setup.py from here into C:\Python27\Scripts

6) Open a command line, navigate to C:\Python27\Scripts, run: 'python distribute_setup.py'

7) now run 'easy_install pip'

8) now run 'pip install fabric'

9) You should get an error saying PyCrypto couldn't install. You can download the pre-build Windows binary from here. Run this to install PyCrypto.

10) run 'pip install fabric' again and it should say everything is installed.

11) in a different directory (let's say c:\dev\hello) create a fabfile.py and add the following code:

def hello(name="world"):
    print("Hello %s!" % name)

12) cd to this directory and run 'fab hello:working'. You should see output say

Hello working!

Done.

Give this readline a try. It is a module for Windows that allows additional features in IPython that aren't native and might work with what you are trying to do.

0.1.1 is an older version, I believe. I have no problem installing Fabric on Windows with ActivePython (w/ PyPM):

C:\> pypm install fabric
Ready to perform these actions:
The following packages will be installed:
 fabric-0.9.0 pycrypto-2.0.1
Get: [pypm.activestate.com] fabric 0.9.0-1
Get: [pypm.activestate.com] pycrypto 2.0.1-1
Installing fabric-0.9.0
Fixing script C:\Users\sridharr\AppData\Roaming\Python\Scripts\fab-script.py
Installing pycrypto-2.0.1
  1. Download and run easy_install installer for your python version from http://pypi.python.org/pypi/setuptools#downloads . ie: setuptools-0.6c11.win32-py2.6.exe
  2. On the command prompt, lauch easy_install -U fabric to install the last fabric release.

Readline should be available with Cygwin, if you want to move your entire stack in that direction.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top