|
13 | 13 | break |
14 | 14 | CONFIG['dev'] = isdev |
15 | 15 |
|
| 16 | +# Determine where to look for julia |
| 17 | +jldepot = os.environ.get("JULIA_DEPOT_PATH", "").split(";" if os.name == "nt" else ":")[0] or os.path.join(os.path.expanduser("~"), ".julia") |
| 18 | +jlprefix = os.path.join(jldepot, "pythoncall") |
| 19 | +jlbin = os.path.join(jlprefix, "bin") |
| 20 | +jlinstall = os.path.join(jlprefix, "install") |
| 21 | +jldownload = os.path.join(jlprefix, "download") |
| 22 | +jlexe = os.path.join(jlbin, "julia.cmd" if os.name == "nt" else "julia") |
| 23 | + |
16 | 24 | # Determine where to put the julia environment |
17 | 25 | venvprefix = os.environ.get("VIRTUAL_ENV") |
18 | 26 | condaprefix = os.environ.get("CONDA_PREFIX") |
|
25 | 33 | else: |
26 | 34 | prefix = None |
27 | 35 | if prefix is None: |
28 | | - jlenv = "PythonCall" |
| 36 | + jlenv = os.path.join(jldepot, "environments", "PythonCall") |
29 | 37 | else: |
30 | 38 | jlenv = os.path.join(prefix, "julia_env") |
31 | 39 | CONFIG['meta'] = os.path.join(jlenv, "PythonCallMeta.json") |
32 | 40 |
|
33 | | -# Determine where to look for julia |
34 | | -jlprefix = os.path.join(os.path.expanduser("~"), ".julia", "pythoncall") |
35 | | -jlbin = os.path.join(jlprefix, "bin") |
36 | | -jlinstall = os.path.join(jlprefix, "install") |
37 | | -jldownload = os.path.join(jlprefix, "download") |
38 | | -jlexe = os.path.join(jlbin, "julia.cmd" if os.name == "nt" else "julia") |
39 | | - |
40 | 41 | # Find the Julia library |
41 | 42 | libpath = os.environ.get('PYTHON_JULIACALL_LIB') |
42 | 43 | if libpath is None: |
|
111 | 112 | script = ''' |
112 | 113 | try |
113 | 114 | import Pkg |
114 | | - Pkg.activate("{}", shared={}, io=devnull) |
| 115 | + Pkg.activate(raw"{}", io=devnull) |
115 | 116 | {} |
116 | 117 | ENV["JULIA_PYTHONCALL_LIBPTR"] = "{}" |
117 | 118 | import PythonCall |
118 | 119 | catch err |
119 | 120 | @error "Error loading PythonCall.jl" err=err |
120 | 121 | rethrow() |
121 | 122 | end |
122 | | - '''.format( |
123 | | - jlenv.replace('\\', '\\\\'), |
124 | | - 'true' if prefix is None else 'false', |
125 | | - install, |
126 | | - c.pythonapi._handle, |
127 | | - ) |
| 123 | + '''.format(jlenv, install, c.pythonapi._handle) |
128 | 124 | res = lib.jl_eval_string(script.encode('utf8')) |
129 | 125 | if res is None: |
130 | 126 | raise Exception('PythonCall.jl did not start properly') |
|
0 commit comments