问题
在一个非base的conda环境下(即在你自己的conda环境下时), pip安装mmdetection3d以及visdom后,直接用命令 mim -h
显示相关帮助信息 或visdom
启动visdom服务,可能会出现Command 'xxx' not found
,无法使用mim以及visdom。
解决方法一
解决的方法一般为在命令前面加上python -m xxx
,如python -m mim -h
,就可以正常执行mim -h
了。
python -m
的作用是:执行后python会检索sys.path
,查找名字为name
的模块或者包,并将其内容当成__main__
模块来执行,可通过python -m site
来查看当前的sys.path
检索空间
但是,加上这语句不仅麻烦,而且有些还不一定是简单的python -m xxx
,例如要代替原本visdom
命令的就是python -m visdom.server
解决方法二(recommend!)
pip安装可能会默认把包安装到全局python的site-packages中,而不是安装在当前的conda环境下,以python3.8为例:
全局python的路径:/home/你的用户名/.local/lib/python3.8/site-packages
而自己的conda环境下python的路径:/home/你的用户名/anaconda3/envs/你的环境名字/lib/python3.8/site-packages
若出现上述的问题,即Command 'xxx' not found
,对应的xxx
包在conda环境下大概率是没有的,同时对应的bin
可执行文件也没有(有这个bin可执行文件才可以直接在命令行里输入mim -h
执行相应的操作),
同时查看/home/你的用户名/.local/bin
和/home/你的用户名/anaconda3/envs/你的环境名字/bin
路径下的文件,发现mim
和visdom
这两个文件只在/home/你的用户名/.local/bin
里有,把这两个bin文件复制到conda环境下bin路径即可完美解决!
sudo cp -i /home/你的用户名/.local/bin/mim /home/你的用户名/anaconda3/envs/你的环境名字/bin
visdom
也是如此操作,总之缺啥就复制啥。不再需要使用python -m xxx
PS:不知道一些包的安装路径,可以重复pip安装即可查看路径。
pip install -U openmim
# 重新安装 寻找mim的位置
Requirement already satisfied: openmim in ./.local/lib/python3.8/site-packages (0.3.9)