vscode和pycharm混用中常见问题集合


之前我一直用的是pycharm,但是发现pycharm的远程连接实在是很垃圾,转用vscode又存在很多问题啊,明明能在pycharm上运行的代码却在vscode上运行不了。
这篇经验主要是用来记录一下自己用vscode时遇到的一些问题

import本项目的文件却no mudle named问题

明明import的是自己的.py文件,却显示no mudle,问题在于运行当前文件时,默认的根目录为这个文件的父文件夹。
例如
test
/- - -a
/- - - - -b
/- - - - -c
/- - -d
/- - - - -e
当我运行e的时候,根目录是d
那么我如果e中import b 或者import a.b都是不行的
只有在我把根目录改到test的时候,才行
这个时候应该在import b之前加上

import sys,os
sys.path.append(os.path.abspath("/xxx/xxx/test"))
#(xxxx看你自己的目录)

torch问题

在pycharm中明明可以运行的文件,在vscode中却显示
The NVIDIA driver on your system is too old (found version 10020). Please update your GPU driver by downloading
意思是我的torch和我的cuda不匹配,但问题是之前在pycharm运行的好好的,自己下载的也的确是匹配的pytorch

在尝试下面这段代码的时候

import torch
print(torch.cuda.is_available())

得到的答案是false

这说明我下载的不是gpu版本的torch
可是我conda list的时候,的确显示的是我的虚拟环境以及正确的torch版本

![在这里插入图片描述](https://img-blog.csdnimg.cn/accf1ae69dce4fd4b95c35047be9dd5e.png

在这里插入图片描述决定看一下torch的路径

import torch
print(torch.__path__)

发现了问题所在
在这里插入图片描述显示的路径竟然是在.local/lib/python3.8/site-packages下的
如果用的是虚拟环境下的pytorch
应该是’/anaconda3/envs/虚拟环境名称/lib/python3.8/site-packages/torch’下的torch

根据前面的方法,我应该

import sys,os
sys.path.append(os.path.abspath("/xxxx/xxxxx/anaconda3/envs/xxxxx/lib/python3.8/site-packages"))
import torch

但是再次输出path还是显示的是之前的torch地址
经过print(sys.path)发现
.local那个路径在sys.path中
所以

import sys,os
sys.path.append(os.path.abspath("/xxxx/xxxxx/anaconda3/envs/xxxxx/lib/python3.8/site-packages"))
sys.path.remove("/xxxx/xxxxx/.local/lib/python3.8/site-packages")
import torch

这样之后import的torch就是正确的了

再次

print(torch.cuda.is_available())

得到的结果就算True了,地址也对了
在这里插入图片描述

连同一个环境pycharm中有的包vscode却没有

连接同一个虚拟环境,pycharm中可以看到是有transformers的
在这里插入图片描述但是在 vscode中显示
在这里插入图片描述

ModuleNotFoundError: No module named ‘transformers’
用conda list查了之后发现
在这里插入图片描述
还真的是没有,不仅这个没有,很多包都没有,甚至连pip都不是同一个版本

决定打开xshell看一下,和vscode中显示一致
在这里插入图片描述
所以得重新下载一遍
重新 pip install transformers==4.27.1之后,却提示已经存在

Requirement already satisfied: transformers==4.27.1 in /xxxx/xxxxx/.local/lib/python3.8/site-packages (4.27.1)

那么问题就应该是,下载的各种包,可能有的在.local环境下,有的在env环境下。
pycharm的范围更广一些,把这些都囊括了进来,并且囊括了进来之后对于重复的包可以自己选择版本使用
而vscode不能选择包的版本,只能去掉一些版本不符合的路径,去掉路径之后就少了很多包。所以我们应该设置一下pip的默认下载地址
输入 python -m site
发现默认地址确实有问题
在这里插入图片描述需要先把错误路径中的包卸载,再按照这个教程换地址
https://blog.csdn.net/tsq292978891/article/details/104655113

但是这样实在是太麻烦了,我选择
把.local中不符合的torch删掉,然后remove地址那一条去掉
先暂时用着 剩下的之后再说hhhhh

猜你喜欢

转载自blog.csdn.net/gem_Microphone/article/details/131125711