Open yurivict opened 1 year ago
This looks like the source tree that's not having any build artifacts is used as import root for pytest due to fs Layout
The package is installed into the stage directory /usr/ports/finance/py-ta-lib/work-py39/stage
PYTHONPATH is set to /usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages
All artifacts are there:
$ find /usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__init__.py
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/abstract.py
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/deprecated.py
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/stream.py
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/test_abstract.py
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/test_data.py
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/test_func.py
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/test_pandas.py
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/test_polars.py
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/test_stream.py
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/_ta_lib.cpython-39.so
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/deprecated.cpython-39.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/__init__.cpython-39.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/abstract.cpython-39.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/test_abstract.cpython-39.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/stream.cpython-39.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/test_data.cpython-39.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/test_func.cpython-39.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/test_pandas.cpython-39.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/test_polars.cpython-39.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/test_stream.cpython-39.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/test_abstract.cpython-39.opt-1.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/abstract.cpython-39.opt-1.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/deprecated.cpython-39.opt-1.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/stream.cpython-39.opt-1.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/test_pandas.cpython-39.opt-1.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/test_data.cpython-39.opt-1.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/test_func.cpython-39.opt-1.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/test_polars.cpython-39.opt-1.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/talib/__pycache__/test_stream.cpython-39.opt-1.pyc
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/TA_Lib-0.4.26-py3.9.egg-info
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/TA_Lib-0.4.26-py3.9.egg-info/PKG-INFO
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/TA_Lib-0.4.26-py3.9.egg-info/SOURCES.txt
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/TA_Lib-0.4.26-py3.9.egg-info/dependency_links.txt
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/TA_Lib-0.4.26-py3.9.egg-info/requires.txt
/usr/ports/finance/py-ta-lib/work-py39/stage/usr/local/lib/python3.9/site-packages/TA_Lib-0.4.26-py3.9.egg-info/top_level.txt
What is missing?
Based on the code layout the collection in the working directory will force pytest to shadow the staging directory after adding something to sys. Path to be able to import from the working directory
There is a plan to correctly handle the duality between collect in the checkout but import from install location, however that is not implemented
It may be possible to use --pyargs talib
Adding --pyargs talib
in fact corrects the problem.
Please note that this is only a workaround, the correct fix is not yet implemented
While trying to run pytest on the TA-Lib project (and many other projects) it fails to find this library:
talib._ta_lib
is installed into a system-wide directory (/usr/local/lib/python3.9/site-packages/talib/_ta_lib.cpython-39.so), andimport talib
succeeds in Python.py39-pytest-7.2.2,1 Python-3.9 FreeBSD 13.1