使用flask从python调用julia返回错误

2024-10-03 02:36:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Julia中执行一个代码,从python调用它。当我在我的机器上本地运行它时,它工作正常,但当我尝试使用flask运行它时,它返回一个错误并停止执行

下面是通过flask从python调用Julia代码(example.jl)的示例:

function echomsg(msg)
    return msg 
end

python代码如下所示

from flask import Flask
import julia
from julia import Julia
app = Flask(__name__)
@ app.route("/")
def main():
    # j = julia.Julia()
    # j.include("example.jl")
    for l in "blabla":
        Julia(compiled_modules=False)
        j = julia.Julia("example.jl")
        j.include("example.jl")
        print(j.echomsg(l))
    return 'OK'
if __name__ == "__main__":
    app.run('0.0.0.0',port=8080)

​它打印“blabla”,但随后停止进程并返回以下错误:

Traceback (most recent call last):
  File "C:\Users\Pedro\Documents\floki\allocation\app.py", line 250, in <module>
    app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 8080)))
  File "C:\Users\Pedro\.virtualenvs\allocation-enVgDhcs\lib\site-packages\flask\app.py", line 990, in run
    run_simple(host, port, self, **options)
  File "C:\Users\Pedro\.virtualenvs\allocation-enVgDhcs\lib\site-packages\werkzeug\serving.py",
line 1050, in run_simple
    run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
  File "C:\Users\Pedro\.virtualenvs\allocation-enVgDhcs\lib\site-packages\werkzeug\_reloader.py", line 337, in run_with_reloader
    reloader.run()
  File "C:\Users\Pedro\.virtualenvs\allocation-enVgDhcs\lib\site-packages\werkzeug\_reloader.py", line 202, in run
    for filename in chain(_iter_module_files(), self.extra_files):
  File "C:\Users\Pedro\.virtualenvs\allocation-enVgDhcs\lib\site-packages\werkzeug\_reloader.py", line 24, in _iter_module_files
    filename = getattr(module, "__file__", None)
  File "C:\Users\Pedro\.virtualenvs\allocation-enVgDhcs\lib\site-packages\julia\core.py", line 176, in __getattr__
    return self.__try_getattr(name)
  File "C:\Users\Pedro\.virtualenvs\allocation-enVgDhcs\lib\site-packages\julia\core.py", line 189, in __try_getattr
    if self._julia.isamodule(jl_fullname):
  File "C:\Users\Pedro\.virtualenvs\allocation-enVgDhcs\lib\site-packages\julia\core.py", line 660, in isamodule
    return self.eval("isa({}, Module)".format(julia_name))
  File "C:\Users\Pedro\.virtualenvs\allocation-enVgDhcs\lib\site-packages\julia\core.py", line 605, in eval
    ans = self._call(src)
  File "C:\Users\Pedro\.virtualenvs\allocation-enVgDhcs\lib\site-packages\julia\core.py", line 537, in _call
    ans = self.api.jl_eval_string(src.encode('utf-8'))
OSError: exception: access violation reading 0x00000000000019A8
Error in atexit._run_exitfuncs:
OSError: exception: access violation reading 0x00000000000019A0

我怎样才能解决它


Tags: runinpylibpackageslinesitevirtualenvs