Ответ 1
Решение на самом деле очень простое. Просто экспортируйте путь, где находится двоичный файл phantomjs. В моем случае это /Users/Tom/Downloads/phantomjs -1.9.2/bin, следовательно
export PATH=$PATH:/Users/Tom/Downloads/phantomjs-1.9.2/bin
Я загрузил последнюю версию casperjs (1.03) и phantomjs (1.9.2).
Итак, я взял этот маленький простой script со страницы casper:
var casper = require('casper').create({
verbose: true,
logLevel: "debug"
});
var casper = new require('casper').Casper();
и когда я пытаюсь запустить его, я получаю следующую ошибку:
noname:phantomjs-1.9.2 Tom$ casperjs/bin/casperjs tipico2.js
Fatal: [Errno 2] No such file or directory; did you install phantomjs?
Итак, это моя структура каталогов:
phantomjs-1.9.2/ <-- the folder containing phantomjs
phantomjs-1.9.2/casperjs/ <-- a subfolder containting casperjs
Почему это не работает?
Решение на самом деле очень простое. Просто экспортируйте путь, где находится двоичный файл phantomjs. В моем случае это /Users/Tom/Downloads/phantomjs -1.9.2/bin, следовательно
export PATH=$PATH:/Users/Tom/Downloads/phantomjs-1.9.2/bin
Столкнулась с той же проблемой, когда установленный casper с npm глобально на osx. Сначала я установил переменную среды PHANTOMJS_EXECUTABLE в путь, где были установлены phantomjs (обычно это /usr/local/lib/ node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs phantomjs) с
export PHANTOMJS_EXECUTABLE=/usr/local/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs phantomjs
это помогло лишь частично, так как у меня все еще была ошибка, вроде файла и папки /usr/local/bin/phantomjs, поэтому я только что создал символическую ссылку и указал ее на настоящую двоичную папку с
ln -s /usr/local/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs /usr/local/bin/phantomjs
надеюсь, что это поможет кому-то:)
Для OS X:
brew install casperjs --devel
brew install phantomjs
и он будет работать
Если вы получаете эту ошибку в PHP, поместите ее выше вашего exec:
<?php
putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");
?>
Где путь /usr/local/bin/phantomjs
- это путь к вашей установке phantomjs. Вы можете получить это, набрав which phantomjs
в терминал, например.
ШАГ 1 - Перейдите к переменным среды
Пуск → Переменные среды → Переменные среды или Мой компьютер → Свойства → Дополнительные параметры системы → Переменные среды
ШАГ 2 - установите новую PATH в папку PhantomJS/bin
Выберите PATH (Пользователь или Система) → Изменить
Новое → Обзор → найдите папку BIN в установке PhantomJS на вашем жестком диске Принять
ШАГ 3 - Проверьте свою работу
Открыть CMD → Тип "phantomjs -v"
Вы должны получить номер версии phantomJS в качестве ответа в любой папке вашего дерева.
У меня была эта проблема. Пробовал на 2х разных машинах окна.
Удалил все установленные версии npm из папок node_modules и AppData/Roaming....
Удалил фантом и каспер из c:/где изначально установлен.
Загруженный фантом и извлеченный в папку Program Files из https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-windows.zip
Скачанный каспер и распакованный в папку Program Files из https://github.com/casperjs/casperjs/zipball/1.1.0
Задать переменную системной среды C:\Program Files\phantomjs-2.1.1-windows\bin
Задать переменную системной среды C:\Program Files\casperjs-casperjs-b5c59e1\bin
Я не установил PHANTOMJS_EXECUTABLE, как упоминалось в некоторых других сообщениях. Не уверен, будет ли это иметь значение, но 100% работает с вышеуказанными шагами в Windows 10 с Phantom 2.1.1 и casper 1.1.0
Столкнулся с такой же проблемой после глобальной установки casperjs с npm на osx. Решение на самом деле очень простое. вы должны включить эти строки вверху вашего скрипта, чтобы связать casperjs с phantomjs.
phantom.casperPath = "/path_to/casperjs/";
phantom.injectJs(phantom.casperPath + "/bin/bootstrap.js");