deno_python icon indicating copy to clipboard operation
deno_python copied to clipboard

Python packages not found if installed with venv

Open al6x opened this issue 1 year ago • 1 comments

On mac os it works well with packages installed with brew but when using venv and packages installed with pip - it can't find it.

The sys.path is different when run with python and bunpy, the bunpy misses the venv installation dir

python

[
  '/Users/alex/base/projects/ext_ts/math',
  '/usr/local/Cellar/[email protected]/3.12.4/Frameworks/Python.framework/Versions/3.12/lib/python312.zip',
  '/usr/local/Cellar/[email protected]/3.12.4/Frameworks/Python.framework/Versions/3.12/lib/python3.12',
  '/usr/local/Cellar/[email protected]/3.12.4/Frameworks/Python.framework/Versions/3.12/lib/python3.12/lib-dynload',
  '/Applications/misc/python/lib/python3.12/site-packages' 
]

bunpy (misses '/Applications/misc/python/lib/python3.12/site-packages' )

[
  '/usr/local/Cellar/[email protected]/3.12.4/Frameworks/Python.framework/Versions/3.12/lib/python312.zip',
  '/usr/local/Cellar/[email protected]/3.12.4/Frameworks/Python.framework/Versions/3.12/lib/python3.12',
  '/usr/local/Cellar/[email protected]/3.12.4/Frameworks/Python.framework/Versions/3.12/lib/python3.12/lib-dynload',
  '/usr/local/Cellar/[email protected]/3.12.4/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages'
]

P.S.

I also had to explicitly set python lib, by default it can't find it

export DENO_PYTHON_PATH=/usr/local/Cellar/[email protected]/3.12.4/Frameworks/Python.framework/Versions/3.12/lib/libpython3.12.dylib

al6x avatar Jan 11 '25 03:01 al6x

Solution:

Add env variable

export DENO_DEPS_PATH=/Applications/misc/python/lib/python3.12/site-packages

Add this variable to sys.path

const sys = python.import('sys')
sys.path.append(process.env.DENO_DEPS_PATH)

Then python.import works well

al6x avatar Jan 11 '25 03:01 al6x