python项目相关

news2025/2/13 9:26:41

遇到的问题

解决 Python 模块导入路径问题

问题描述

在运行 Python 文件时,可能会遇到以下错误:

ModuleNotFoundError: No module named 'utils'

原因:

  • Python 的模块导入机制依赖于当前工作目录和 sys.path 中的路径。
  • 当直接运行某个文件时,Python 会将该文件所在目录添加到 sys.path,而不是项目的根目录,导致无法正确导入其他模块。

解决方法 (一般再临时调试时候会出现,我推荐使用方法三)

方法 1:修改 sys.path

在代码中手动将项目的根目录添加到 sys.path

import sys
import os

current_dir = os.path.dirname(os.path.abspath(__file__))
project_root = os.path.abspath(os.path.join(current_dir, '..'))

if project_root not in sys.path:
    sys.path.append(project_root)

from utils.subgraph_extraction import *

优点:简单直接,适合快速调试。
缺点:不够优雅,可能不适合复杂项目。


方法 2:使用相对导入

如果项目是一个包(包含 __init__.py),可以使用相对导入:

from ..utils.subgraph_extraction import *

然后从项目的根目录运行脚本:

python -m utils.Core_functions

优点:符合 Python 包管理规范,适合大型项目。
缺点:不能直接运行单个文件,需要调整运行方式。


方法 3:设置环境变量 PYTHONPATH

在运行脚本前,设置环境变量 PYTHONPATH 指向项目的根目录。
比如这样,我原本再根目录调用这个文件,没有问题,但是现在我想要进入这个文件里面运行它
在这里插入图片描述
就会报错:
在这里插入图片描述
这样再运行就没问题了
在这里插入图片描述

  • Linux/MacOS
    export PYTHONPATH=/path/to/your/project
    python utils/Core_functions.py
    
  • Windows(命令提示符)
    set PYTHONPATH=C:\path\to\your\project
    python utils\Core_functions.py
    
  • Windows(PowerShell)
    $env:PYTHONPATH = "C:\path\to\your\project"
    python utils\Core_functions.py
    

优点:无需修改代码,适合团队协作。
缺点:需要每次运行前设置环境变量。


方法 4:使用 IDE 配置工作目录

通过 IDE 配置运行时的工作目录为项目的根目录。

  • PyCharm

    1. 打开运行配置(Run/Debug Configurations)。
    2. 设置 Working Directory 为项目的根目录。
  • VSCode
    .vscode/launch.json 中添加以下配置:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Run Core_functions",
                "type": "python",
                "request": "launch",
                "program": "utils/Core_functions.py",
                "cwd": "${workspaceFolder}"
            }
        ]
    }
    

优点:适合开发环境,无需修改代码。
缺点:仅适用于特定 IDE。


方法 5:重构项目结构

将所有模块组织为一个包,并通过入口脚本(如 main.py)统一调用。例如:

project/
├── main.py
├── utils/
│   ├── __init__.py
│   ├── Core_functions.py
│   └── subgraph_extraction.py

main.py 中:

from utils.Core_functions import some_function

if __name__ == "__main__":
    some_function()

然后始终通过 main.py 运行项目:

python main.py

优点:规范项目结构,避免路径问题。
缺点:需要对项目进行一定的重构。


总结
  • 临时调试:推荐 方法 1方法 3
  • 长期维护:推荐 方法 2方法 5
  • IDE 开发:推荐 方法 4

根据具体需求选择合适的方法即可!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2297275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于轨道角动量自由度在空间频域中的可选择特性

将光的轨道角动量自由度应用到全息领域,证实了轨道角动量全息;实现了高维轨道角动量复用全息技术,获得了高安全的全息加密和超高容量全息信息系统。 1、轨道角动量自由度在全息中的引入 如图1所示,当全息图中没有携带轨道角动量的…

机器人学的AGI实现路径:从专用智能到通用认知的跨越

文章目录 引言:机器人学的范式革命一、AGI与机器人学的融合现状1.1 传统机器人系统的局限1.2 AGI技术为机器人学带来的变革1.3 关键里程碑案例二、AGI机器人的核心技术栈2.1 多模态感知融合2.2 认知架构设计2.3 具身认知实现路径三、AGI机器人的实现路径3.1 阶段式发展路线3.2…

香港中文大学 Adobe 推出 MotionCanvas:开启用户掌控的电影级图像视频创意之旅。

简介: 亮点直击 将电影镜头设计引入图像到视频的合成过程中。 推出了MotionCanvas,这是一种简化的视频合成系统,用于电影镜头设计,提供整体运动控制,以场景感知的方式联合操控相机和对象的运动。 设计了专门的运动条…

基于STM32的学习环境控制系统设计

🤞🤞大家好,这里是5132单片机毕设设计项目分享,今天给大家分享的是学习环境控制。 设备的详细功能见网盘中的文章《21、基于STM32的学习环境控制系统设计》: 链接:https://pan.baidu.com/s/1uWSZX2zbZwy9sY…

snort3.0-ubuntu18.04 64入侵检测安装与使用ailx10ailx10​​知乎知识会员

在日常生活中,很多人怀疑自己的手机、电脑被监控了,担心自己的隐私泄漏,实际上最佳的检测方式就是终端检测,也就是EDR,但是就是有那么多的人在网上大放厥词,说任何EDR杀毒软件都检测不到监控,毕…

使用亚马逊针对 PyTorch 和 MinIO 的 S3 连接器进行模型检查点处理

2023 年 11 月,Amazon 宣布推出适用于 PyTorch 的 S3 连接器。适用于 PyTorch 的 Amazon S3 连接器提供了专为 S3 对象存储构建的 PyTorch 数据集基元(数据集和数据加载器)的实现。它支持用于随机数据访问模式的地图样式数据集和用于流式处理…

408-数据结构

数据结构在学什么? 1.用代码把问题信息化 2.用计算机处理信息 ch1 数据:数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 ch2 //假设线性表…

spring cloud 使用 webSocket

1.引入依赖,(在微服务模块中) <!-- Spring WebSocket --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency> 2.新建文件 package com.ruoyi.founda…

安科瑞 Acrel-2000ES:解锁储能管理新高度,引领能源未来!

安科瑞 崔丽洁 在能源转型的关键时期&#xff0c;高效的储能管理成为众多企业和项目的核心需求。今天&#xff0c;就给大家介绍一款储能管理的 “神器”—— 安科瑞 Acrel-2000ES 储能能量管理系统。 安科瑞电气可是行业内的 “明星企业”&#xff0c;2003 年成立&#xff0c;2…

基于Django以及vue的电子商城系统设计与实现

基于Django以及vue的电子商城系统设计与实现 引言 随着电子商务的快速发展&#xff0c;越来越多的企业和个人选择搭建线上商城&#xff0c;以提供更加便捷的购物体验。本文基于Python开发了一套电子商城系统&#xff0c;后端采用Django框架&#xff0c;前端使用Vue.js&#x…

电脑变慢、游戏卡顿,你的SSD固态可能快坏了!

电脑用久了&#xff0c;很多人都会感觉速度变慢&#xff0c;开机变慢、文件复制时间变长&#xff0c;甚至莫名其妙的卡顿。你可能怀疑是系统问题&#xff0c;或者内存不够&#xff0c;但往往被忽略的一个关键因素——你的硬盘&#xff0c;可能正在悄悄老化。 硬盘寿命不是永久的…

AI使用场景简单测试

前言 今天来分享下AI的2个实用场景&#xff0c;我这里是使用的博主&#xff1a;小虚竹&#xff0c;搭建的AI服务&#xff0c;用的ChatGPT 4O模型&#xff0c;主要是试了3个场景&#xff0c;服装设计、直播带货话术、检验报告分析。 一、服装设计 对于最后需要的裁片设计上的尺寸…

【并发控制、更新、版本控制】.NET开源ORM框架 SqlSugar 系列

系列文章目录 &#x1f380;&#x1f380;&#x1f380; .NET开源 ORM 框架 SqlSugar 系列 &#x1f380;&#x1f380;&#x1f380; 文章目录 系列文章目录一、并发累计&#xff08;累加&#xff09;1.1 单条批量累计1.2 批量更新并且字段11.3 批量更新并且字段list中对应的…

DeepSeek-R1本地搭建

1. 前言 现在deepseek火上天了&#xff0c;因为各种应用场景,加上DeepSeek一直网络异常&#xff0c;所以本地部署Deepseek成为大家的另一种选择。 目前网络上面关于DeepSeek的部署方式有很多&#xff0c;但是太麻烦了&#xff0c;本文是一篇极为简单的DeepSeek本地部署方式&…

查出 product 表中所有 detail 字段包含 xxx 的完整记录

您可以使用以下 SQL 查询语句来查出 product 表中所有 detail 字段包含 oss.kxlist.com 的完整记录&#xff1a; SELECT * FROM product WHERE INSTR(detail, oss.kxlist.com) > 0;下面是detail字段包含的完整内容 <p><img style"max-width:100%;" src…

Redis存储⑥Redis五大数据类型之 Zset

目录 1. Zset 有序集合 1.1 Zset 有序集合常见命令 zadd zcard zcount zrange zrevrange zrangebyscore&#xff08;弃用&#xff09; zpopmax bzpopmax zpopmin bzpopmin zrank zrevrank zscore zrem zremrangebyrank zremrangebyscore zincrby 1.2 Zset有…

将Excel中的图片保存下载并导出

目录 效果演示 注意事项 核心代码 有需要将excel中的图片解析出来保存到本地的小伙子们看过来&#xff01;&#xff01;&#xff01; 效果演示 注意事项 仅支持xlsx格式&#xff1a;此方法适用于Office 2007及以上版本的.xlsx文件&#xff0c;旧版.xls格式无法使用。 图片名…

SQL注入之布尔和时间盲注,sqli-labs

实验环境&#xff1a; sqli-labs&#xff0c;小皮面板搭建&#xff0c;edge浏览器 apache&#xff1a;2.4.39&#xff0c;MySQL&#xff1a;5.7 PHP&#xff1a;5.39 Python&#xff08;pycharm2023&#xff09;:3 less-8 布尔盲注&#xff1a; 1.我这里是采用最简单的直接采…

基于云计算、大数据与YOLO设计的火灾/火焰目标检测

摘要&#xff1a;本研究针对火灾早期预警检测需求&#xff0c;采用在Kaggle平台获取数据、采用云计算部署的方式&#xff0c;以YOLO11构建模型&#xff0c;使用云计算服务器训练模型。经训练&#xff0c;box loss从约3.5降至1.0&#xff0c;cls loss从约4.0降至1.0&#xff0c;…

YOLO自定义数据集实现K折交叉验证——K-Fold Cross Validation

实现K折交叉验证&#xff08;K-Fold Cross Validation&#xff09;对于YOLO&#xff08;You Only Look Once&#xff09;自定义数据集的目标检测任务可以显著提升模型的可靠性和泛化能力。 1. 数据集准备 首先&#xff0c;你需要确保你的数据集符合YOLO的格式&#xff0c;具体…