Решение, которое вы используете в настоящее время, я использую, т. е. создаю локальную копию функции. Это не изящно, но я не думаю, что вы нанесли огромный удар производительности (или, по крайней мере, в моем случае, я много работаю над этим методом, поэтому он не делает заметной разницы). Я также создал C-массив в методе __cinit__, а затем заполнил его данными в __init__ (убедитесь, что вы правильно используете __dealloc__ для очистки). Вы теряете некоторые функции массива numpy, но вы все равно можете использовать его, как и для c-массива.
Вы также можете проверить обсуждение в этом более старом письме в списке cython:
http://codespeak.net/pipermail/cython-dev/2009-April/005214.html
Это зависит от ситуации. Многие разработчики определяют файл журнала своего приложения как app/servername.log или просто как текущий путь, по которому загружено приложение Rack.
Да, вы можете изменить путь.
Обычно вы получаете файл config.ru с чем-то вроде:
log = File.new("sinatra.log", "a+")
$stdout.reopen(log)
$stderr.reopen(log)
# optionally to sync logs while the server is running
$stderr.sync = true
$stdout.sync = true
и/или
configure do
LOGGER = Logger.new("sinatra.log")
enable :logging, :dump_errors
set :raise_errors, true
end
в этом случае файл журнала находится в appdir/sinatra.log. Но помните, что этот код может быть где угодно в вашем приложении Rack, поэтому, пожалуйста, ищите "log" в каталоге вашего приложения.
$ cd projectname
$ grep -ri 'log' *
развлекайтесь и публикуйте здесь ваш config.ru и/или mainprojectfile.rb.