未从 Django views.py 中找到 Matlab 脚本
Matlab script not found from django views.py
我在 views.py 页面的同一目录中有一个用户制作的 Matlab 脚本,但是在调用它时我收到错误消息:Undefined function 'getRecs' for input arguments of type 'double'.
基本上找不到脚本。
当我在同一目录中使用 test.py 脚本测试脚本时一切正常,但是当通过我的浏览器和开发服务器通过 views.py 调用时出现错误。
tools.py:
def get_recs(passed_list):
eng = matlab.engine.start_matlab()
recs = eng.getRecs(passed_list)
return recs
test.py:(工作正常并且与 views.py 和 getRecs.m 位于同一目录中)
(运行 使用 Pydev 的 运行 作为:Python 运行)
from tools import *
test_ratings = [5, 0, 3, 2, 1, 5]
conv_rates = matlab.double(initializer=test_ratings)
new_recs = get_recs(conv_rates)
print_list(new_recs)
views.py:(抛出错误)
from tool import *
test_ratings = [5, 0, 3, 2, 1, 5]
def new_user(request):
conv_rates = matlab.double(initializer=test_ratings)
new_recs = get_recs(conv_rates)
return render_to_response('new_user.html', { 'ratings_list' :new_recs}, context_instance=RequestContext(request))
我正在使用 Python 2.7、Django 1.9 和 Matlab R2015b
Django 开发服务器(或 WSGI 服务器)定义了与用户脚本所在目录不同的默认目录。尝试使用 addpath
选项将用户脚本的位置添加到搜索路径:
eng = matlab.engine.start_matlab("-addpath /var/django/myproject/myapp/")
对于将来遇到此问题的任何人:就像 Selcuk 提到的那样,开发服务器定义了自己的目录,因此您需要添加要用于引擎的脚本的路径。我通过添加
来做到这一点
eng.addpath(r'C:\path\to\my\scripts\')
初始化并启动引擎后。
我在 views.py 页面的同一目录中有一个用户制作的 Matlab 脚本,但是在调用它时我收到错误消息:Undefined function 'getRecs' for input arguments of type 'double'.
基本上找不到脚本。
当我在同一目录中使用 test.py 脚本测试脚本时一切正常,但是当通过我的浏览器和开发服务器通过 views.py 调用时出现错误。
tools.py:
def get_recs(passed_list):
eng = matlab.engine.start_matlab()
recs = eng.getRecs(passed_list)
return recs
test.py:(工作正常并且与 views.py 和 getRecs.m 位于同一目录中) (运行 使用 Pydev 的 运行 作为:Python 运行)
from tools import *
test_ratings = [5, 0, 3, 2, 1, 5]
conv_rates = matlab.double(initializer=test_ratings)
new_recs = get_recs(conv_rates)
print_list(new_recs)
views.py:(抛出错误)
from tool import *
test_ratings = [5, 0, 3, 2, 1, 5]
def new_user(request):
conv_rates = matlab.double(initializer=test_ratings)
new_recs = get_recs(conv_rates)
return render_to_response('new_user.html', { 'ratings_list' :new_recs}, context_instance=RequestContext(request))
我正在使用 Python 2.7、Django 1.9 和 Matlab R2015b
Django 开发服务器(或 WSGI 服务器)定义了与用户脚本所在目录不同的默认目录。尝试使用 addpath
选项将用户脚本的位置添加到搜索路径:
eng = matlab.engine.start_matlab("-addpath /var/django/myproject/myapp/")
对于将来遇到此问题的任何人:就像 Selcuk 提到的那样,开发服务器定义了自己的目录,因此您需要添加要用于引擎的脚本的路径。我通过添加
来做到这一点eng.addpath(r'C:\path\to\my\scripts\')
初始化并启动引擎后。