"и ожидание должно быть асинхронным" - я не пытаюсь быть забавным, но разве который не является противоречием в терминах? Однако, так как Вы запускаете Process
, Exited
, событие может помочь:
ProcessStartInfo startInfo = null;
Process process = Process.Start(startInfo);
process.EnableRaisingEvents = true;
process.Exited += delegate {/* clean up*/};
, Если Вы хотите на самом деле ожидать (тайм-аут и т.д.), тогда:
if(process.WaitForExit(timeout)) {
// user exited
} else {
// timeout (perhaps process.Kill();)
}
Для ожидания асинхронного, возможно, просто используйте другой поток?
ThreadPool.QueueUserWorkItem(delegate {
Process process = Process.Start(startInfo);
if(process.WaitForExit(timeout)) {
// user exited
} else {
// timeout
}
});
Я не пробовал, но вы можете загрузить эту версию из Portable Python . Он поставляется с Scipy-0.7.0b1, работающим на Python 2.5.4.
Краткий ответ: поддержка 64-битной версии Windows все еще продолжается. Суперпак, конечно, не будет работать на 64-битном Python (но он должен нормально работать на 32-битном Python, даже в 64-битной Windows).
Основная проблема с 64-битной Windows заключается в том, что сборка с mingw-w64 не стабильная на данный момент: это может быть наша ошибка (разработчиков NumPy), ошибка Python или mingw-w64. Скорее всего, комбинация всего этого :). Таким образом, вы должны использовать проприетарные компиляторы: все, кроме компилятора Microsoft, приводит к сбою NumPy случайным образом; для компилятора Фортрана следует использовать ifort. На сегодняшний день
Как сказано в расшифровке стенограммы SciPy, SciPy на самом деле не должен работать с Win64:
Warning: Windows 64 bits support is experimental, and only available for
testing. You are advised not to use it for production.
Поэтому я бы предложил установить 32-разрядную версию Python и прекратить попытки построить SciPy самостоятельно. Если вы все равно хотите попробовать, вам сначала нужно скомпилировать BLAS и LAPACK, как говорит ПетрЛегница. См. Расшифровку стенограммы мест, где он искал скомпилированные версии этих библиотек.
Попробуйте установить Python 2.6.3 поверх 2.6.2 (это также должно добавить правильную запись в реестр) или зарегистрировать существующую установку с помощью этого сценария . После этого установщик должен работать.
Для сборки SciPy требуется компилятор Fortran и библиотеки - BLAS и LAPACK .
Неофициальные 64-разрядные инсталляторы для NumPy и SciPy доступны на http://www.lfd.uci.edu/~ gohlke / pythonlibs /
Убедитесь, что вы загружаете и установить пакеты (ака. колеса), которые соответствуют вашим CPython версии и разрядность (то есть. cp35
= Python v3.5; win_amd64
= x86_64).
Вы захотите Установить numpy сначала ; От приглашения CMD с привилегиями администратора для широкой системы (AKA. Program Files) Установите:
C:\>pip install numpy‑<version>+mkl‑cp<ver-spec>‑cp<ver-spec>m‑<cpu-build>.whl
или включают флажок - пользователь
, чтобы установить в папку приложения текущего пользователя (обычно % AppData% \ Python
в Windows) из Non-Admin CMD Подскажите:
C:\>pip install --user numpy‑<version>+mkl‑cp<ver-spec>‑cp<ver-spec>m‑<cpu-build>.whl
Тогда сделайте то же самое для Scipy:
C:\>pip install [--user] scipy‑<version>‑cp<ver-spec>‑cp<ver-spec>m‑<cpu-build>.whl
Не забудьте заменить Версия>
,
, а
, если вы копируете и вставьте любой из этих примеров. А также, что вы должны использовать пакеты Numpy & Scipy из ссылки IFD.uci.edu выше (или иначе вы получите ошибки, если вы попытаетесь смешивать и сопоставить несовместимые пакеты - удалите любые противоречивые пакеты сначала [т.е. Список
]).
Для полноты: Eventuled имеет распределение Python, которое включает в себя Scipy; Тем не менее, это не бесплатно. Будьте: я никогда не использовал это.
Обновление: этот ответ давно забыл до тех пор, пока экспторы не верну мне обратно. В это время я вторую предложение Эндолита AnaConda , которое бесплатно.
Другая альтернатива: http://www.pythonxy.com/
Бесплатно и включает в себя множество вещей, предназначенных для бесперебойной совместной работы.
Этот человек говорит
Вы пробовали linux.pythonxy? ( http://linux.pythonxy.com ).
Он готов к 64 битам ...
Хотя я не совсем понимаю, что это значит.
Обновление:
Кажется, он мертв. Сейчас я использую Anaconda , у которого есть 32-битные или 64-битные установщики.
Я получал эту же ошибку на 32-битной машине. Я исправил ее, зарегистрировав свою установку Python, используя скрипт по адресу:
http://effbot.org/zone/python-register.htm
Возможно, этот скрипт также заставит работать 64-битные установщики суперпака.