Python项目的目录设置 VSCode & Pycharm

一、路径获取说明

运行目录路径

  • 绝对路径 (二者等价)
    os.path.abspath(".")
    os.getcwd()

理解:运行目录路径, 即命令行运行时的路径.
举例:
/home/winnie/Project/segmentation_models

(pytorch) winnie@winnie:~/Project/segmentation_models$ python tools/test_unet.py 
os.path.abspath("."):  
/home/winnie/Project/segmentation_models
os.getcwd(): 
/home/winnie/Project/segmentation_models

/home/winnie/Project/segmentation_models/tools

(pytorch) winnie@winnie:~/Project/segmentation_models/tools$ python test_unet.py 
os.path.abspath("."):  
/home/winnie/Project/segmentation_models/tools
os.getcwd(): 
/home/winnie/Project/segmentation_models/tools

当前文件路径

  • 文件绝对路径
    os.path.abspath(__file__)
  • 文件相对路径
    os.path.dirname(__file__)

举例:
同一文件绝对路径是一样的,相对路径是相对于运行目录的。

(pytorch) winnie@winnie:~/Project/segmentation_models$ python tools/test_unet.py 
os.path.abspath(__file__): /home/winnie/Project/segmentation_models/tools/test_unet.py
os.path.dirname(__file__):  tools
(pytorch) winnie@winnie:~/Project/segmentation_models/tools$ python test_unet.py 
os.path.abspath(__file__): /home/winnie/Project/segmentation_models/tools/test_unet.py
os.path.dirname(__file__):  

二、无法导入Python Package

原因

无法导入Python Package, 这是因为它所在的目录不在sys.path中。

解决方案

参考文档: 文件夹加入到sys.path

举例:

MODULE_PATH = os.path.abspath(".")
if MODULE_PATH not in sys.path:
	sys.path.append(MODULE_PATH)

注意,MODULE_PATH根据项目运行路径而改变。
比如,当MODULE_PATH要求为项目地址时(最常见),此时命令行目录为项目根目录。

三、Pycharm配置

运行目录路径配置

Run -> Edit Configurations, 将Working Directory设置成项目根目录。此时,运行与调试均基于项目根目录。

导入自己的Python Package

使用(二)中的解决方案,命令行运行、IDE运行和调试均没有问题。

美中不足:
通过sys.path.append添加Package时,代码可以正常运行。
但是在IDE显示中,import package会被标红。(实际影响不大,但看起来很不舒服,而且相关函数无法通过command+点击进行链接)

将Package设置为Sources Root

参考博客
选中文件夹右键 -> Mark Directory as -> Sources Root

问题解决:
此时上面提到的问题解决,IDE中不会标红。

四、VSCode配置

运行目录路径配置

1. Debug路径设置

launch.json中,添加cmd

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}"	//${workspaceFolder}
        }
    ]
}
2. IDE运行路径设置

IDE运行路径与Terminal运行路径一致,只需调整Terminal运行路径即可。

导入自己的Python Package

使用(二)中的解决方案,添加Python Package。

美中不足:
代码可以正常运行,但是在IDE显示中,import package会被标红。(实际影响不大,但看起来很不舒服)

五、VSCode Jupyter配置

运行目录路径配置

Preference -> Settings -> Python Notebook File Root
${fileDirName}修改成${workspaceFolder}.

此时,os.path.abspath("."),os.getcwd()均为项目根目录。sys.path也是项目根目录。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这取决于个人喜好和需求。VSCodePyCharm 都是功能强大的 Python 集成开发环境 (IDE)。VSCode 更轻量级,更适合编写简单的代码,而 PyCharm 更适合编写大型项目。如果你是初学者,建议使用 VSCode。如果你是专业程序员,建议使用 PyCharm。 ### 回答2: 使用Python编程语言的开发者普遍会在VS Code和PyCharm之间做出选择。这两个都是使用非常广泛的开源的IDE,那么在选择时该如何决策呢? 首先,需要清楚的是,VS Code是微软的跨平台代码编辑器,可以支持多种编程语言,它是开源的,并且免费。同时,VS Code也有很大的扩展市场,可以安装各种插件,拓展其功能,例如Python的插件可以实现智能补全、语法高亮、调试等功能。 PyCharm是由JetBrains开发的Python IDE,主要针对Python语言,也是功能强大并且支持多种功能,例如Code Navigation、Debugging、Unit testing、Version Control等等。PyCharm有两个版本,Community版本是免费的,专业版是收费的。 VS Code适合简单的项目和快速的开发和调试,其插件拓展可以帮助开发者更快的编写代码并且实现快速反馈。而使用PyCharm则适用于大型或多人协作项目,例如大型的软件项目,巨大的程序库或在多人开发的过程中。 总的来说,二者各有优劣,你需要根据自己的需要和实际情况来选择,如果你更多的是需要快速开发,特别是一些简单的程序小功能,那么VS Code是不错的选择。如果你的工程涉及到很多特殊命令或需要更复杂的工具或具备团队协作的要求,那么PyCharm可能是更好的选择。所以,选择编辑器总是为了满足我们的实际需求,关键是适应自己的开发需求。 ### 回答3: Python是一种流行的编程语言,广泛用于数据分析,人工智能和Web开发中。使用Python编写代码需要选择一种编写和调试代码的工具,常见的两种工具是VSCodePyCharmVSCode是一款轻量级的代码编辑器,提供了与Python的集成,因此它是Python开发的不错选择。VSCode维护了广泛的生态系统,用户可以在Extensions Marketplace下载和安装数千个扩展,以满足不同的编码需求。 它的界面简洁明了,上手容易,可针对Python的处理技巧不及PyCharmPyCharm是一款由Jetbrains公司开发的全功能Python IDE,它非常适合Python开发,功能齐全,包括自动化重构、调试,支持各种框架。PyCharm提供了更强大的功能,包括代码智能感知、代码片段、代码格式化等,为Python开发提供了完整的工具集。但同样的,PyCharm也就更加复杂,需要较长时间的学习和使用,且较大的内存占用是推荐对较强电脑配置的用户。 考虑选择VSCode还是PyCharm会因人而异,完全取决于您的需求和经验水平。对于经验不是太高的人,VSCode可以作为IDE的替代品,它更轻量、易于学习、易于使用。对于专业开发人员,PyCharm提供了很多高级和强大的功能,可以提高开发效率。总之,在选择编辑器时,您应该考虑哪个适合您的工作流程和编码需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值