unable to link to python3.7m using pyd and conda
Cesar
cesar.rdz.v at gmail.com
Thu Sep 26 14:11:59 UTC 2019
On Thursday, 26 September 2019 at 13:29:09 UTC, Cesar wrote:
> Hi,
>
> I am trying to get started using pyd with
> https://github.com/Superbelko/pyd-min as an example and I am
> getting an error from the linker:
>
> minpyd ~master: building configuration "application"...
> Linking...
> /usr/bin/ld: cannot find -lpython3.7m
> collect2: error: ld returned 1 exit status
> Error: linker exited with status 1
> dmd failed with exit code 1.
>
>
> I did not modify anything from that sample code. This is a
> proof-of-concept and then I would move to a larger D project
> and Python library which uses a specific conda environment.
>
> If I take out the pyd subConfiguration from dub.json, the build
> succeeds but then it picks up my system-wide python 2.7.
>
> Does anyone know how I can indicate the linker where to look
> for python3.7m? How can I configure pyd to use python from my
> conda environment? As a small note, I am quite new to D, so I
> may have missed something obvious.
>
> Best regards
> Cesar
I found what was wrong. The pyd subConfiguration of python37 was
looking for my system-wide python37, which I did not have. To use
the conda python, I ran the script from
https://github.com/ariovistus/pyd/blob/master/setup/pyd_set_env_vars.sh:
pyd_set_env_vars.sh <my_conda_python>
And used subConfiguration "pyd": "env". When I did that, I got a
runtime error about the libraries not being found, so then I
added the flag LD_LIBRARY_PATH when running the executable:
LD_LIBRARY_PATH=~/miniconda3/envs/MYENV/lib ./executable
I still need to figure out how to move this flag into dub.son but
for now it is working. Hope this helps out in case someone has
the same problem.
Cesar
More information about the Digitalmars-d-learn
mailing list