我试图在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
setuptools-0.6c11.win32-py2.6.exe
easy_install -U fabric
以安装最后的光纤版本。 如果你想在这个方向上移动你的整个堆栈,Readline应该可以在Cygwin中使用。