Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux共享主机中的python wsgi应用程序中运行node/lessc_Python_Node.js_Linux_Openerp_Mod Wsgi - Fatal编程技术网

在linux共享主机中的python wsgi应用程序中运行node/lessc

在linux共享主机中的python wsgi应用程序中运行node/lessc,python,node.js,linux,openerp,mod-wsgi,Python,Node.js,Linux,Openerp,Mod Wsgi,我试图在一个共享主机环境中以守护程序模式使用apache和mod_wsgi运行一个Odoo(openERP)实例,这意味着我没有超级用户权限 该应用程序需要较少的编译器才能正常工作,由于系统没有安装node/lessc,我为用户自定义安装了node,并将二进制文件添加到路径中。问题是apache正在为另一个用户运行,我无法让wsgi应用程序bash一个lessc命令 如何让node和lessc为我的用户工作: export PATH=~/apps_wsgi/node/bin:$PATH 我的p

我试图在一个共享主机环境中以守护程序模式使用apache和mod_wsgi运行一个Odoo(openERP)实例,这意味着我没有超级用户权限

该应用程序需要较少的编译器才能正常工作,由于系统没有安装node/lessc,我为用户自定义安装了node,并将二进制文件添加到路径中。问题是apache正在为另一个用户运行,我无法让wsgi应用程序bash一个lessc命令

如何让node和lessc为我的用户工作:

export PATH=~/apps_wsgi/node/bin:$PATH
我的python版本是2.7.10,下面是一些更多的系统信息:

[admsolariza@web7695 ~]$ cat /proc/version
Linux version 4.11.6-1.el6.elrepo.x86_64 (mockbuild@Build64R6) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Sat Jun 17 10:32:49 EDT 2017
[admsolariza@web7695 ~]$ node -v
v6.11.1
[admsolariza@web7695 ~]$ npm -v
3.10.10
[admsolariza@web7695 ~]$ lessc -v
lessc 2.7.2 (Less Compiler) [JavaScript]
以下是我的wsgi脚本:

import sys, os

venv_path = '/home/admsolariza/apps_wsgi/odoo_env/lib/python2.7/site-packages'
if venv_path not in sys.path:
        sys.path.insert(0, venv_path)

project_path = '/home/admsolariza/apps_wsgi/odoo'
if project_path not in sys.path:
        sys.path.insert(0, project_path)

node_path = '/home/admsolariza/apps_wsgi/node/bin'
if node_path not in sys.path:
        sys.path.insert(0, node_path)

import commands
status, output = commands.getstatusoutput("lessc")
with open('apps_wsgi/log', 'w') as f:
        f.write(output)

import odoo

#----------------------------------------------------------
# Common
#----------------------------------------------------------
odoo.multi_process = True # Nah!

# Equivalent of --load command-line option
odoo.conf.server_wide_modules = ['web']
conf = odoo.tools.config

# Path to the OpenERP Addons repository (comma-separated for
# multiple locations)

conf['addons_path'] = os.path.join(project_path, 'addons')

# Optional database config if not using local socket
conf['db_name'] = 'foo'
conf['db_host'] = 'bar'
conf['db_user'] = 'foo'
#conf['db_port'] = 5432
conf['db_password'] = 'bar'

#----------------------------------------------------------
# Generic WSGI handlers application
#----------------------------------------------------------
application = odoo.service.wsgi_server.application

odoo.service.server.load_server_wide_modules()
sh: lessc: command not found
由wsgi脚本创建的日志文件的内容:

import sys, os

venv_path = '/home/admsolariza/apps_wsgi/odoo_env/lib/python2.7/site-packages'
if venv_path not in sys.path:
        sys.path.insert(0, venv_path)

project_path = '/home/admsolariza/apps_wsgi/odoo'
if project_path not in sys.path:
        sys.path.insert(0, project_path)

node_path = '/home/admsolariza/apps_wsgi/node/bin'
if node_path not in sys.path:
        sys.path.insert(0, node_path)

import commands
status, output = commands.getstatusoutput("lessc")
with open('apps_wsgi/log', 'w') as f:
        f.write(output)

import odoo

#----------------------------------------------------------
# Common
#----------------------------------------------------------
odoo.multi_process = True # Nah!

# Equivalent of --load command-line option
odoo.conf.server_wide_modules = ['web']
conf = odoo.tools.config

# Path to the OpenERP Addons repository (comma-separated for
# multiple locations)

conf['addons_path'] = os.path.join(project_path, 'addons')

# Optional database config if not using local socket
conf['db_name'] = 'foo'
conf['db_host'] = 'bar'
conf['db_user'] = 'foo'
#conf['db_port'] = 5432
conf['db_password'] = 'bar'

#----------------------------------------------------------
# Generic WSGI handlers application
#----------------------------------------------------------
application = odoo.service.wsgi_server.application

odoo.service.server.load_server_wide_modules()
sh: lessc: command not found

我所期望的是lessc命令被找到并正常工作。有什么想法吗?

如果
node\u path
是可执行路径,那么应该将其添加到
path
环境变量中,而不是
sys.path
。编辑
os.environ['PATH']
。工作起来很有魅力!!!非常感谢你。这个问题困扰了我好几个小时。我以为sys.path编辑了$path变量。