как заставить модуль f2py искать в текущем каталоге зависимость общего объекта

До появления спецификации 5-го издания метод Date.parse был полностью зависимым от реализации (new Date(string) эквивалентен Date.parse(string) кроме последнего возвращает число, а не Date). В спецификации 5-го издания было добавлено требование о поддержке упрощенного (и немного неправильного) ISO-8601 , но кроме этого было требование no для того, что Date.parse / new Date(string) должны принять иное, чем то, что они должны были принять любой вывод Date # toString (не сказав, что это было).

Как и в ECMAScript 2017 (издание 8), реализации необходимо было проанализировать их вывод для Дата # toString и Дата # toUTCString , но формат этих строк не был указан.

Начиная с ECMAScript 2019 (версия 9) формат для Дата # toString и Дата # toUTCString указана как (соответственно):

  1. ddd MMM DD YYYY HH: mm: ss ZZ [(имя часового пояса)] например Вт 10 июля 2018 18:39:58 GMT + 0530 (IST)
  2. ddd, DD MMM YYYY HH: mm: ss Ze.g. Вт 10 июл 2018 13:09:58 GMT

предоставление еще 2 форматов, которые Date.parse должны корректно анализировать в новых реализациях (отмечая, что поддержка не является вездесущей и несовместимые реализации будут оставаться в использовании в течение некоторого времени).

Я бы рекомендовал, чтобы строки даты обрабатывались вручную, а конструктор даты Date использовался с аргументами года, месяца и дня, чтобы избежать двусмысленность:

// parse a date in yyyy-mm-dd format
function parseDate(input) {
  var parts = input.split('-');
  // new Date(year, month [, day [, hours[, minutes[, seconds[, ms]]]]])
  return new Date(parts[0], parts[1]-1, parts[2]); // Note: months are 0-based
}

0
задан Vince W. 15 January 2019 в 15:29
поделиться

1 ответ

  1. установить переменную env export LDFLAGS=-Wl,-rpath=.
  2. установить переменную env export NPY_DISTUTILS_APPEND_FLAGS=1
  3. обновить numpy до 1.16.0 или выше

Хотя Вы не можете передать флаги компоновщика из командной строки в f2py, он будет читать переменную окружения LDFLAGS. Однако стандартное поведение для numpy заключается в том, чтобы перезаписывать флаги , используемые при компиляции, а не добавлять их, что приведет к сбою при компиляции, если требуемые флаги отсутствуют в LDFLAGS. В numpy версии 1.16.0 была добавлена ​​поддержка для необязательного добавления этих флагов компоновщика путем установки переменной среды NPY_DISTUTILS_APPEND_FLAGS=1

>>> unset LD_LIBRARY_FLAGS   # just in case was set before
>>> export LDFLAGS=-Wl,-rpath=.
>>> export NPY_DISTUTILS_APPEND_FLAGS=1
>>> python3 -m numpy.f2py -c progpy.f lib.so -m prog
>>> python3 test.py
    hello world
0
ответ дан Vince W. 15 January 2019 в 15:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: