【问题标题】:How do I get PhantomJS / CasperJS working on Cygwin?如何让 PhantomJS / CasperJS 在 Cygwin 上工作?
【发布时间】:2013-01-05 00:07:48
【问题描述】:

我无法让 PhantomJS 和 CasperJS 在 cygwin 环境中工作。我对cygwin很陌生。我能够为 Windows 下载这两个包并通过 Windows cmd 运行它们。

为了让他们使用 Cygwin,我尝试了以下方法:

我下载了 PhantomJS 和 CasperJS 的 tar/zip 文件,我将“bin”文件夹中的内容复制到了 C:\cygwin\bin。但是当我在 cygwin 上输入 phantomjs 时,我得到:

/usr/bin/phantomjs: 无法执行二进制文件

然后,我尝试这样做:

pip install git+git://github.com/ariya/phantomjs

但等待一段时间后,我得到以下响应:

下载/解压 git+git://github.com/ariya/phantomjs 克隆 git://github.com/ariya/phantomjs 到 /tmp/pip-dCF1oZ-build 运行 setup.py egg_info for package from git+git://github.com/ariya/phantomjs 回溯(最近一次通话最后): 文件“”,第 16 行,在 IOError:[Errno 2] 没有这样的文件或目录:'/tmp/pip-dCF1oZ-build/setup.py' 命令 python setup.py egg_info 的完整输出: Traceback(最近一次调用最后一次):

文件“”,第 16 行,在

IOError: [Errno 2] 没有这样的文件或目录: '/tmp/pip-dCF1oZ-build/setup.py'

---------------------------------------- 命令 python setup.py egg_info 失败/tmp/pip-dCF1oZ-build 存储中的错误代码 1 完成登录/home/tkondapalli/.pip/pip.log

是否有人对如何使其正常工作有任何建议?有人在cygwin环境下使用PhantomJS/CasperJS吗?


另外,我认为我正在下载并复制到 C:\cygwin\bin 目录中的 .exe 是用于 linux 的,所以也许这不起作用?所以这意味着我需要在cygwin上从源代码编译...

所以,我开始遵循构建 phantomjs 的指示:http://phantomjs.org/build.html

我们需要做的第一件事是为 devel 构建 OpenSSL,但我不知道如何为 cygwin 执行此操作!所以我暂时跳过了这一步,这可能是不对的。

我确实从 github 下载了源代码并尝试构建它。它失败并出现以下错误:

Makefile:217: 目标“qtemporaryfile.o”的配方失败 make:* [qtemporaryfile.o] 错误 1 ​​make: * 等待未完成的工作.... make: *** 没有指定目标,也没有找到 makefile。停止。 ./build.sh: line 90: src/qt/bin/qmake: 没有那个文件或目录


之前我下载了适用于 Linux 的可执行文件,因此无法正常工作。这次我下载了windows的可执行文件并将它放在C:/cygwin/bin中,它工作了!

当 cygwin 是一个 linux 模拟器时,我不明白为什么我需要下载 windows 可执行文件。这让我很困惑,但至少现在可以了!

【问题讨论】:

  • 假设您正确拥有文件C:\cygwin\bin\phantomjs.exe,请尝试使用文件的完整路径调用它。
  • 也忘记了安装 PhantomJS 的 pip install 方法。这是一种完全错误的安装方式。
  • 感谢有关 pip 安装的建议。当我尝试使用完整路径运行 phantomjs 时,仍然出现相同的错误:无法执行二进制文件
  • 您还有什么建议吗??
  • 虽然 Cygwin 允许您运行非常类似于 Unix 的环境,但这并不意味着它可以运行来自其他操作系统的二进制文件。

标签: cygwin phantomjs casperjs


【解决方案1】:

来自 Cygwin 网站:

Cygwin 不是:一种在 Windows 上运行本机 Linux 应用程序的方法。如果您希望它在 Windows 上运行,您必须从源代码重新构建您的应用程序。

每个应用程序都需要重新构建才能在 Windows 上使用(因为它不会生成 elf 文件,而是需要 cygwin dll 的 .exe 文件)。

尽管如此,cygwin 中的 shell 可以执行任何 windows 的 .exe 文件(如 ping、ipconfig、cmd 等),这就是为什么你可以在 cygwin 下运行 windows 版本的 PhantomJS。

【讨论】:

    【解决方案2】:

    首先,从http://nodejs.org/download下载并安装Node.js
    关闭并重新打开 Cygwin 并输入:

    $ npm install -g phantomjs  
    $ npm install -g casperjs
    

    【讨论】:

      【解决方案3】:

      刚刚遇到这个问题,将 phantomjs 可执行文件放在 C:/cygwin/bin 中解决了所有问题。之后,您需要做的就是运行命令 C:/cygwin/bin/phantomjs 来初始化应用程序。

      虽然 Cygwin 并没有替代标准的 cmd 提示符,但还是很有用的!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-23
        • 1970-01-01
        • 2010-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多