digitalmars.D.learn - unable to link to python3.7m using pyd and conda
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
Sep 26 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 CesarI 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
Sep 26 2019