SysCV/sam-pt

Error running the demo

JunkyByte opened this issue · 4 comments

Hello, thanks for your work.
I installed the checkpoints and setup the environment but I am not able to run the demo.

[...]
$ cd sam-pt/
$ python -m demo.demo frames_path=~/Documents/CoTracker-SAM/samples/horsejump-stick/ query_points_path=null
Error while finding module specification for 'demo.demo' (ModuleNotFoundError: __path__ attribute not found on 'demo' while trying to find 'demo.demo')

Running without the -m works correctly if I add the sam-pt/ path to sys modules in demo.py before importing sam_pt

import sys
sys.path.append('./')
m43 commented

Hej, what do you get when running the following commands in your terminal:

python -c "import sys; print(sys.path)"
# ['', 
# '/scratch_net/biwidl217/frrajic/miniconda3/envs/sam-pt/lib/python38.zip', 
# '/scratch_net/biwidl217/frrajic/miniconda3/envs/sam-pt/lib/python3.8', 
# '/scratch_net/biwidl217/frrajic/miniconda3/envs/sam-pt/lib/python3.8/lib-dynload', 
# '/scratch_net/biwidl217/frrajic/miniconda3/envs/sam-pt/lib/python3.8/site-packages']

python -c "import demo; print(demo.__path__)"
# _NamespacePath(['/scratch_net/biwidl217/frrajic/eth-master-thesis/03-code/sam-pt/demo'])

python -c "from demo import demo as demo; print(demo.__file__)"
# /scratch_net/biwidl217/frrajic/eth-master-thesis/03-code/sam-pt/demo/demo.py

Note that the last command would probably give an error for you.

Hi!

$ python -c "import sys; print(sys.path)"
['', '/opt/homebrew/Cellar/python@3.9/3.9.17/Frameworks/Python.framework/Versions/3.9/lib/python39.zip', '/opt/homebrew/Cellar/python@3.9/3.9.17/Frameworks/Python.framework/Versions/3.9/lib/python3.9', '/opt/homebrew/Cellar/python@3.9/3.9.17/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload', '/Users/junkybyte/Library/Python/3.9/lib/python/site-packages', '/opt/homebrew/lib/python3.9/site-packages']

[...]/sam-pt$ python -c "import demo; print(demo.__path__)"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
AttributeError: module 'demo' has no attribute '__path__'

The problem is fixed and the commands listed in your docs work correctly if I add a __init__.py to demo/.
Once I do that every command runs correctly

python -c "from demo import demo as demo; print(demo.__file__)"
/Users/junkybyte/Documents/sam-pt/demo/demo.py
junkybyte@~/Documents/sam-pt$ python -c "import demo; print(demo.__path__)"
['/Users/junkybyte/Documents/sam-pt/demo']
m43 commented

I've added empty __init__.py files to all relevant directories since for some systems they are required to make Python treat directories as packages. Thanks!