在Windows上安装Fabric(错误,没有模块称为Readline)

我试图在Windows上使用Fabric 0.1.1部署工具( http://docs.fabfile.org/ ),我们遇到了readline模块的问题。 我已经通过各种线程,但似乎无法解决这个问题。 这很重要,因为我们无法从基于Windows的机器部署应用程序。

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** 

安装模块将导致:

 **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' 

有没有人解决这个问题,或者有人可以提出一个解决方法?

您正尝试使用easy_install安装的readline模块用于OS X,而不是Windows。 有Windows兼容替代readline那里但也许你应该首先尝试更新fabric本身到一个更新的版本(现在有0.9 )。

清理0.9版本的源代码在readline上找不到任何依赖关系。

按照这些步骤完全为我工作:

1)从这里使用x86的MSI安装程序安装 。

2)安装在默认的C:\ Python27目录下。

3)创建一个新目录:C:\ Python27 \ Scripts

4)在系统路径中添加了C:\ Python27和C:\ Python27 \ Scripts:

高级系统设置>环境变量>路径

5)从这里下载distribute_setup.py到C:\ Python27 \ Scripts

6)打开一个命令行,导航到C:\ Python27 \ Scripts,运行:'python distribute_setup.py'

7)现在运行'easy_install pip'

8)现在运行“pip安装面料”

9)你应该得到一个错误说PyCrypto无法安装。 您可以从这里下载预生成的Windows二进制文件 。 运行这个来安装PyCrypto。

10)再次运行“pip install fabric”,应该说所有东西都已经安装好了。

11)在不同的目录下(比如说c:\ dev \ hello)创建一个fabfile.py并添加如下代码:

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

12)cd到这个目录并运行'fab hello:working'。 你应该看到输出说

 Hello working! Done. 

给这个readline一个尝试。 它是Windows的一个模块,它允许IPython中的其他功能不是本地的,并可能与您正在尝试的功能一起工作。

我相信0.1.1是一个老版本。 使用ActivePython (w / PyPM )在Windows上安装Fabric时没有问题:

 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. http://pypi.python.org/pypi/setuptools#downloads下载并运行python版本的easy_install安装程序&#x3002; 即: setuptools-0.6c11.win32-py2.6.exe
  2. 在命令提示符处,输入easy_install -U fabric以安装最后的光纤版本。

如果你想在这个方向上移动你的整个堆栈,Readline应该可以在Cygwin中使用。