创建conda环境后,原来在电脑上下载的python库就不能直接用了,需要在conda环境里各自再安装一遍。与平时一样,可以用pycharm工具和用pip命令方法安装库。也可以用conda命令安装。
方法一
pycharm打开需要安装库的项目,左上角File->Settings->Project->Python Interpreter,点击右上角+号进入库商店。但是换成conda环境后库经常不全,例如搜索opencv只有三个结果,没有我需要的opencv-python库。
方法二
打开Anaconda Prompt
切换到你需要的环境,list中当前环境前面会有一个*
conda env list
activate list中你需要的环境路径
conda env list
然后就可以和平时一样用pip命令安装库了。注意一定要在Anaconda Prompt切换到对应环境,不然可能会安装到全局目录中。
方法三(推荐)
在终端进入对应的环境(可以是pycharm的终端),用conda命令安装。一定要进入对应的环境,不然会安装在Miniconda目录下面。用conda命令之前要确认下是否把conda添加到了环境变量中。
conda activate 你的环境名,不需要是路径
conda install xxx
方法四(推荐)
在conda环境中直接用pip命令安装包,会安装到conda的全局python中,例如~/.local/lib/python3.6/site-packages/,而不是某个特定的环境里。因此我们要修改需要安装包的环境的lib文件夹中的pythonx.x文件夹下的site.py。
在site.py中我们会看到
USER_SITE = None #安装Python包的路径
USER_BASE = None #执行下载的pip等脚本的路径
例如我需要安装包的环境叫yolov8,就修改为
USER_SITE = "/home/myName/miniconda3/envs/yolov8/lib/python3.8/site-packages/"
USER_BASE = "/home/myName/miniconda3/envs/yolov8/lib/python3.8/"
这样我们就可以直接用pip命令安装包到想要的环境里了。
注意:
如果打开site.py发现USER_SITE和USER_BASE不是空的,而是你上次创建的环境名,那么很可能是conda的硬链接问题。conda为了提高环境的创建速度,有时新环境里的一些文件不是一份新文件,而是miniconda3/pkgs下的一些缓存文件的硬链接。这时如果修改site.py,那么被这个硬链接指向的所有文件都会被修改(比如你之前环境的site.py)!出现以下报错时尤其需要注意:
检查是否存在硬链接问题:
ls -li 你的site.py路径
执行命令后的输出第一个数字就是该文件的inode 号。如果两个文件的 inode 号相同,说明是硬链接;如果不同,说明是独立文件。
如果存在硬链接问题,需要执行以下命令手动复制文件解除硬链接。注意替换自己的用户名和环境名
cp /home/user_name/miniconda3/envs/env_name/lib/python3.8/site.py /tmp/
mv /tmp/site.py /home/user_name/miniconda3/envs/env_name/lib/python3.8/site.py