2017-04-16 9 views
1

Apache의 브라우저에서 Julia 코드를 실행하려고합니다 (Windows 10에서 Ampps를 사용 중입니다). 나는 진짜 명령 프롬프트를 실행하거나 파이썬 코드 (아래 파이썬 코드 참조)로 호출 할 수있다. 브라우저에서 Julia 코드를 직접 실행하려고하면 게이트웨이 시간이 초과되었습니다. 서버가 응답하지 않았습니다. 메시지. 내가 줄리아 코드를 호출하는 파이썬 코드를 실행하려고 할 때, 나는 아파치 오류 로그에서 자세한 정보를 얻을 :Apache에서 Julia를 실행 중입니다. APPDATA 및 Home 환경 변수 설정

fatal: error thrown and no exception handler available.:C:/Program Files 
(x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

rec_backtrace at /home/Administrator/buildbot/slave/package_win6_2-x64/build 
/src/home/Administrator/buildbot/slave/package_win6_2-x64/build/src\\stackwalk.c:84: 
C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: 
http://localhost/csvToLayer_JSAPI/ 

record_backtrace at /home/Administrator/buildbot/slave/package_win6_2-x64/build/src/home 
/Administrator/buildbot/slave/package_win6_2-x64/build/src\\task.c:233: 
C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, 
referer: http://localhost/csvToLayer_JSAPI/ 

jl_throw at /home/Administrator/buildbot/slave/package_win6_2-x64/build/src/home/Administrator/buildbot/slave/package_win6_2-x64/build/src\\task.c:551: 
C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

access_env at .\\env.jl:14: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py,referer: 
http://localhost/csvToLayer_JSAPI/ 

homedir at .\\path.jl:41: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: 
http://localhost/csvToLayer_JSAPI/ 

_pkgroot at .\\pkg\\dir.jl:10 [inlined]: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, 
referer: http://localhost/csvToLayer_JSAPI/ 

__init__ at .\\pkg\\pkg.jl:74: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, 
referer: http://localhost/csvToLayer_JSAPI/ 

unknown function (ip: 0000000061D151DE): C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, 
referer: http://localhost/csvToLayer_JSAPI/ 

jl_call_method_internal at /home/Administrator/buildbot/slave 
/package_win6_2-x64/build/src/home/Administrator/buildbot/slave/package_win6_2-x64/build/src\\julia_internal.h:210 [inlined]: 
C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

jl_apply_generic at /home/Administrator/buildbot/slave/package_win6_2-x64/build/src/home/Administrator/buildbot/slave/package_win6_2-x64/build/src\\gf.c:1950: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

jl_apply at /home/Administrator/buildbot/slave/package_win6_2-x64/build/src/home/Administrator/buildbot/slave/package_win6_2-x64/build/src\\julia.h:1392 [inlined]: 
C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, 
referer: http://localhost/csvToLayer_JSAPI/ 

jl_module_run_initializer at /home/Administrator/buildbot/slave/package_win6_2-x64/build/src/home/Administrator/buildbot/slave/package_win6_2-x64/build/src\\toplevel.c:83: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

_julia_init at /home/Administrator/buildbot/slave/package_win6_2-x64/build/src/home/Administrator/buildbot/slave/package_win6_2-x64/build/src\\init.c:742: 
C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: 
http://localhost/csvToLayer_JSAPI/ 

julia_init at /home/Administrator/buildbot/slave/package_win6_2-x64/build/src/home/Administrator/buildbot/slave/package_win6_2-x64/build/src\\task.c:284: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

wmain at /home/Administrator/buildbot/slave/package_win6_2-x64/build/ui\\repl.c:242: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

__tmainCRTStartup at /usr/src/debug/mingw64-x86_64-runtime-4.0.6-1/crt\\crtexe.c:329: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

mainCRTStartup at /usr/src/debug/mingw64-x86_64-runtime-4.0.6-1/crt\\crtexe.c:212: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

BaseThreadInitThunk at C:\\WINDOWS\\System32\\KERNEL32.DLL (unknown line): C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 
RtlUserThreadStart at C:\\WINDOWS\\SYSTEM32\\ntdll.dll (unknown line): C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

Base.InitError(mod=:Pkg, error=Base.KeyError(key="HOMEDRIVE")): C:/Program Files (x86)/ 
Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

Traceback (most recent call last):\r: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 
File "C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py", line 20, in 
<module>\r: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: 
http://localhost/csvToLayer_JSAPI/ 

x = subprocess.check_output(cmd)\r: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: 
http://localhost/csvToLayer_JSAPI/ 
File "C:\\Python27\\ArcGIS10.3\\lib\\subprocess.py", line 573, in check_output\r: 
C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

raise CalledProcessError(retcode, cmd, output=output)\r: C:/Program Files (x86)/ 
Ampps/www/csvToLayer_JSAPI/python.py, referer: http://localhost/csvToLayer_JSAPI/ 

subprocess.CalledProcessError: Command '['C:/Users/Reza/AppData/Local/Julia-0.5.1/bin/julia.exe', 
'C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/HT.jl']' returned non-zero exit status 
-1073741510\r: C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/python.py, 
referer: http://localhost/csvToLayer_JSAPI/ 

이 APPDATA의 ENV 변수가 줄리아 설정하는 방법에 관련된 알려진 문제가 될 것으로 보인다. Here, HOMEDRIVE, HOMEPATH 및 APPDATA에 대한 env 변수는 httpd.conf 또는 httpd-vhosts.conf에 설정해야합니다. 나는 모두 httpd-vhosts.conf와 httpd.conf 편집을 시도했지만, 여전히 같은 오류가 발생한다.

#### Localhost VirtualHost #### 

<VirtualHost 127.0.0.1:80> 
<Directory "{$path}/www"> 
    Options Indexes FollowSymLinks ExecCGI 
    AddHandler cgi-script .cgi .py .jl 
    AllowOverride All 
    Order deny,allow 
    allow from All 
</Directory> 
SetEnv HOMEDRIVE "C:" 
SetEnv HOMEPATH "/Users/Reza" 
SetEnv APPDATA "C:/Users/Reza/AppData/Roaming" 
ScriptLog logs/julia_cgi.log 
ServerName localhost 
ServerAlias localhost 127.0.0.1 
ScriptAlias /cgi-bin/ "{$path}/www/cgi-bin/" 
DocumentRoot "{$path}/www" 
ErrorLog "{$path}/apache/logs/error.log" 
CustomLog "{$path}/apache/logs/access.log" combined 
</VirtualHost> 

줄리아 코드 호출이 파이썬 코드 :

#!"C:/Python27/ArcGIS10.3/python.exe" 

import subprocess 

print "Content-Type: text/html\n\n" 
print "hi there! this is python!" 

command="C:/Users/Reza/AppData/Local/Julia-0.5.1/bin/julia.exe" 
path2script="C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/HT.jl" 
cmd = [command, path2script] 

x = subprocess.check_output(cmd) 

print x 

을 그리고 이것은 줄리아 코드 :

#!"C:/Users/Reza/AppData/Local/Julia-0.5.1/bin/julia.exe" 
redirect_stderr(STDOUT) 
println("Content-Type: text/html\n\n") 
println("hi there; this is Julia!"); 
println("Julia is passing outputs to Python"); 

내가 httpd.conf 파일을 편집하는 방법입니다

APPDATA env 변수의 위치를 ​​설정하고 있습니까? APPDATA에 어떤 폴더를 사용해야합니까? "C :/Users/Reza/AppDate/Roaming"외에도 "C :/Users/Reza/AppDate/Local"및 "C : /Users/Reza/AppDate/Local/Julia-0.5.1"을 시도했습니다. , 그리고 나는 같은 오류가 발생합니다.

답변

1

SetEnv가 httpd.conf에서 작동하지 않는 이유를 모르지만 해결책을 찾았습니다. 파이썬에서 환경 변수를 설정합니다 :

#!"C:/Python27/ArcGIS10.3/python.exe" 
import subprocess,os 

print "Content-Type: text/html\n\n" 
print "hi there! this is python!" 

os.environ["HOMEDRIVE"]="C:" 
os.environ["HOMEPATH"]="/Users/Reza" 
os.environ["APPDATA"]="C:/Users/Reza/AppData/Roaming" 

command="C:/Users/Reza/AppData/Local/Julia-0.5.1/bin/julia.exe" 
path2script="C:/Program Files (x86)/Ampps/www/csvToLayer_JSAPI/HT.jl" 
cmd = [command, path2script] 

try: 
    print subprocess.check_output(cmd) 
except subprocess.CalledProcessError as e: 
    print e.output