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

文章讲述了在从PyCharm转向VSCode过程中遇到的两个主要问题:1)在VSCode中import项目内文件出现nomodulefound错误,解决方案是通过调整sys.path来指定正确根目录。2)torch模块与CUDA版本不兼容且路径问题,通过修改sys.path并移除错误路径解决了问题。此外,还提到了VSCode与PyCharm在包管理上的差异,以及如何处理不同环境下的包版本冲突。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本


之前我一直用的是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.youkuaiyun.com/tsq292978891/article/details/104655113

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

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

VSCode PyCharm 是两款常用的代码编辑器,它们在功能、适用场景以及用户体验上有显著的区别。以下是它们的区别对比: ### 功能对比 - **插件扩展性** VSCode 提供了丰富的插件生态系统,用户可以根据需求安装各种插件来扩展功能,例如 Python、Java、C++ 等多种语言的支持。相比之下,PyCharm 的插件生态虽然也很强大,但其主要专注于 Python 开发,功能更加专一[^1]。 - **调试功能** PyCharm 提供了更为强大的调试功能,特别是在 Python 开发中,其调试工具非常成熟。VSCode 的调试功能也非常强大,但需要依赖插件来实现多语言的调试支持[^1]。 - **版本控制集成** VSCode 内置了 Git 集成,用户可以直接在编辑器中进行版本控制操作,而 PyCharm 也提供了类似的版本控制功能,但可能需要更多的配置。 ### 适用场景 - **轻量级开发** VSCode 更适合轻量级开发任务,安装包小,启动速度快,适合需要快速编写测试代码的场景。相比之下,PyCharm 的安装包较大,启动速度相对较慢,更适合大型项目开发。 - **Python 开发** PyCharm 是专门为 Python 开发设计的 IDE,提供了丰富的 Python 开发工具调试功能。而 VSCode 通过安装 Python 插件也可以很好地支持 Python 开发,但在某些高级功能上可能不如 PyCharm 强大[^2]。 - **远程开发** VSCode 提供了强大的远程开发功能,支持通过 SSH 连接到远程服务器进行开发。PyCharm 也支持远程开发,但配置相对复杂[^3]。 ### 用户体验 - **界面设计** VSCode 的界面设计简洁,用户可以根据需求自定义界面布局。PyCharm 的界面设计更为专业,但可能会显得有些复杂[^1]。 - **路径处理** 在路径处理方面,VSCode 默认的运行空间不是当前文件目录,可能导致相对路径出错。解决方法是通过设置调整运行空间[^2]。 - **性能** VSCode 的启动速度通常比 PyCharm 快,尤其是在处理小型项目时。PyCharm 在处理大型项目时表现更为稳定。 ### 代码示例 以下是一个简单的 Python 脚本在 VSCode PyCharm 中运行的示例: ```python print("Hello, World!") ``` 在 VSCode 中运行此脚本时,可以通过安装 Python 插件并配置运行环境来确保路径正确。而在 PyCharm 中,可以直接创建 Python 项目并运行脚本,无需额外配置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值