Вы можете использовать один метод, который принимает двух пользователей:
public void ifExistOrElse(Consumer<Element> ifExist, Consumer<Element> orElse) {
if (exist()) {
ifExist.accept(this);
} else {
orElse.accept(this);
}
}
Затем вызовите его с помощью:
element.ifExistOrElse(
el -> {
// Do something
},
el -> {
// Do something else
});
Если у кого-то еще есть эта проблема, я просто столкнулся с ней при установке yowsup и python-axolotl, вот что я сделал для ее решения:
1- Применить патч от Tharen в python cygwinccompiler .py-файл (находится в папке установки python) https://bugs.python.org/file40608/patch.diff
2 - с помощью mingw установите pexports, откройте терминал в режиме администратора и введите:
mingw-get install pexports
2-Перейти в папку установки python, в моем случае это были C: \ Program Files (x86) \ Python36-32
все еще в том же терминале, который мы использовали для установки pexports, после перехода в папку установки python выполните следующее:
pexports vcruntime140.dll >libs\vcruntime140.def
dlltool -dllname vcruntime140.dll --def libs\vcruntime140.def --output-lib libs\libvcruntime140.a
Затем вернитесь в папку, где вы устанавливали библиотеку, или что бы вы ни делали прежде чем он должен работать.
btw, не забудьте добавить
[build]
compiler = mingw32
в файл distutils.
Источник: этот собственный пост и https://bugs.python.org/issue25251
Я выполнял ту же проблему и выяснил, что проблема связана с компилятором mingw. Я попробовал исправления, предложенные @tharen, но это не сработало для меня.
Кажется, что любимый компилятор cygwin для Windows - это визуальный c ++, поэтому я загрузил только визуальные инструменты сборки c ++ из http : //landinghub.visualstudio.com/visual-cpp-build-tools , а затем он работал нормально.
Обратите внимание, что вам нужно удалить mingw и все ссылки на него, которые вы включили в ваш проект. В частности, мне пришлось удалить файл distutils.cfg, который я создал, который имел следующий код, указывающий на mingw
[build]
compiler = mingw32
Я сделал следующие изменения, и это сработало для меня со следующими конфигурациями.
Я сделал следующее
C:\mingw-w64\x86_64-7.1.0-posix-seh-rt_v5-rev0\mingw64\bin
для меня) gcc
работает (у меня есть никакие другие компиляторы) distutils.cfg
в C:\Python36\Lib\distutils
[build]
compiler = mingw32
vcruntime140.dll
вручную и поместив его в C:\Python36\libs
Я только что сделал ему следующие изменения, и это сработало как шарм!
Отредактируйте файл distutils.cfg, присутствующий в местах:
Измените содержимое distutils.cfg на:
[build]
compiler=g++
[build_ext]
compiler=g++
PS Возможно также изменение только во 2-м месте.
P.P.S Убедитесь, что gcc установлен и находится в PATH. Для меня был установлен TDM-GCC-64
Детали в link помогли мне решить это как шарм.
Просто прокомментировал get_msvcr()
в cygwinccompiler.py.
(не забудьте также прокомментировать else
)
Distutils и Numpy / Distutils в настоящее время не поддерживают Visual Studio 2015, Visual C ++ 14. Следуя советам, полученным из отчета Python , я смог исправить необходимые файлы и успешно построить расширение используя новую установку Python 3.5 из Anaconda и Mingw64 с GCC 5.2.0, работающую в MSYS2 в Windows 7. У меня нет установленной Visual Studio. Решение заключалось в том, чтобы исправить один файл distutils и два файла numpy / distutils (если это применимо).
Вы можете применить исправления самостоятельно для быстрого исправления:
UPDATE
Обратите внимание, что хотя надписи выше работали для меня, это не было принято для включение в восходящий поток. Изменения, связанные с VS 2015, более сложны, чем я оценил.