这是官方介绍如何使用pip安装SAM2:
https://github.com/facebookresearch/sam2?tab=readme-ov-file#installation
我克隆了这个存储库,并使用
venv
创建了一个名为 virtualEnv
的新环境。然后我使用以下命令安装包:
pip install -e .
显然,效果很好。
问题是当我在另一个目录中创建一个新项目,用vs code打开它,选择包含sam2的环境,并尝试使用以下方式导入sam2:
从 sam2.build_sam 导入 build_sam2
Pylance 说“导入
sam2.build_sam
无法解决”,这让我很困惑。
我注意到存储库的名称是“sam2”,这可能会导致问题,因为它的包名称也是“sam2”。
将 sam2 克隆到项目的根目录,创建新环境并安装它时,我可以通过添加另一个 'sam2' 作为前缀来正确导入 sam2,例如:
从 sam2.sam2.build_sam 导入 build_sam2
但是一旦包含 sam2 的环境和项目存在于不同的目录中,添加“sam2”作为前缀对解决问题没有任何帮助。
This is the summary of the problem generated by ChatGPT:
当您在不同的目录中创建新项目并尝试导入 sam2(使用包含 sam2 的环境)时,VS Code 中的 Pylance 会给出“导入无法解析”错误。您观察到,当项目和 sam2 位于同一目录中时,通过添加第二个 sam2 前缀(例如,from sam2.sam2.build_sam import build_sam2),导入路径有效,但当它们位于不同的目录中时,此方法会失败。
非常感谢。
我在 Windows 上遇到了同样的问题。
命令
!{sys.executable} -m pip install 'git+https://github.com/facebookresearch/sam2.git'
可以在Colab上找到
所以,
python -m pip install git+https://github.com/facebookresearch/sam2.git
似乎工作得很好。