关于Python AI 编程助手Fitten Code的应用体验以及Python 修改删除 sys.path 路径以实现两个项目代码的合并

一、关于Python AI 编程助手Fitten Code的应用体验

        AI现在无孔不入,现在都开始进入到编程中了,有一个能适用多种编译器环境的AI编程插件 Fitten Code。其适配了 Viusal Studio,VS Code(本文使用),JetBrains 系列(本文使用)以及Vim等多种编译器环境的插件 Fitten Code,Fitten Code 是由非十大模型驱动的 AI 编程助手,它可以自动生成代码,提升开发效率,帮您调试 Bug,节省您的时间,另外还可以对话聊天,解决您编程碰到的问题,Fitten Code 免费且支持 80 多种语言:Python、C++、Javascript、Typescript、Java等。目前对于 Python 语言,Fitten Code 支持在多种文本编辑器或 IDE 上使用。这就是我最近正在PyCharm IDE上体验的AI编程插件。

        安装和使用见网址:https://www.runoob.com/python3/fitten-code.html 有非常详细的安装使用教程。

1、安装

        点击左上方"文件"再点击"设置",接着点击左侧"插件"选择"Marketplace",并搜索"Fitten Code",然后点击"安装"进行安装,安装完成后左侧会出现Fitten Code插件图标,注册登录后即可开始使用

2、智能补全

        打开代码文件,输入一段代码,Fitten Code 就会为您自动补全代码:按下 Tab 键接受所有补全建议:按下 Ctrl+→ 键接收单个词补全建议:

3、生成代码

        可在左侧 Fitten Code 工具栏中选择 "Fitten Code - 生成代码"  ,然后在输入框中输入指令即可生成代码:利用注释后的自动补全功能生成代码,也可以利用对话功能生成代码

        实际也根本不用什么教程,安装好之后,你在编辑代码时它会在你鼠标停顿的时候自动补全代码,生成代码。

二、Python 修改删除 sys.path 路径以实现多项目代码合并

        之前的一些老项目因为一些规划未到位,导致项目的主程序和后台任务程序分离开的。但都是大致相同的目录框架,也因此导致需要维护两套代码的git系统、代码发布系统、线上docker容器,觉得非常没有必要。

        在之后的项目中,已将两套程序进行深度合并,只是在入口程序 main.py 上做了修改并形成独立入口程序文件,而原来的老程序代码也没办法一下子就将代码合并,于是试了试预想中的办法并且成功实现。

        在主程序中建立一个类似 task 的目录文件夹,将后台代码程序全部放在此文件夹中。在运行时会出现一个问题,后台任务的运行如下:

  docker exec 容器ID python /app/task/main.py 任务ID

        但是在后台任务运行时会出现 main.py 中的import模块会首先去加载 /app/目录下的模块,而不是 /app/task/ 下的模块。开始我尝试着使用 os.chdir()来改变当前的工作目录。chdir()函数是OS模块的函数,用于改变当前工作目录。

import os
# 改变到指定的目录
os.chdir('/path/to/directory')
# 获取当前工作目录
current_dir = os.getcwd()
print(current_dir)
# 加载模块
from conf.config import Config

        但在执行 import 的时候发现仍然是去加载 /app/conf/config 模块,这就没有达到我的目的了。那什么是sys.path?在Python中,sys.path是一个包含了Python解释器在导入模块时搜索路径的列表。当我们在程序中导入模块时,Python会按照sys.path列表中的顺序来搜索需要导入的模块。sys.path列表的第一个元素是空字符串,表示当前目录。其余的元素是Python解释器搜索模块的路径。

        不过打印原始的sys.path列表,发现其存在 /app/ 路径也存在 /app/task路径,很有可能是优先加载了 /app/路径,打印出来的时候是 /app/task路径 在前,这样来看有可能/app/路径在搜索的时候会优先加载。我曾想过将两个目录的顺序调换,但没有去尝试。因为我想应该可以通过修改 sys.path 来达到效果。

        在运行一些特殊需要的作业比如我这样的后台任务时,可以使用 sys 模块去掉一些路径,通过操作sys.path列表来实现。示例如下:

import sys
# 打印原始sys.path列表
print(sys.path)
# 去掉路径
delete_path = "/path/to/directory"
# 判断路径是否在sys.path中
if delete_path in sys.path:# 从sys.path中移除路径sys.path.remove(delete_path)
# 打印sys.path列表
print(sys.path)

        sys.path是在Python解释器启动时根据配置文件和环境变量生成的,它包含了默认的模块搜索路径。在运行时修改sys.path列表,其修改范围仅限于当前Python解释器的运行时环境,并不是永久修改,而这正是我要的修改范围,因为其它的程序还在运行着API服务,不能变更其sys.path

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

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

相关文章

如何使用C#实现Padim算法的训练和推理

目录 说明 项目背景 算法实现 预处理模块——图像预处理 主要模块——训练:Resnet层信息提取 主要模块——信息处理,计算Anomaly Map 主要模块——评估 主要模块——评估:门限值的确定 主要模块——推理 写在最后 项目下载链接 说…

进入 Searing-66 火焰星球:第一周游戏指南

Alpha 第四季已开启,穿越火焰星球 Searing-66,带你开启火热征程。准备好勇闯炙热的沙漠,那里有无情的高温和无情的挑战在等待着你。从高风险的烹饪对决到炙热的冒险,Searing-66 将把你的耐力推向极限。带上充足的水,天…

Java线程的状态以及转换条件,与操作系统线程状态的区别?

先看图增加点记忆。 Java线程状态: 线程状态转换图: 背景知识 JAVA的线程模型与操作系统线程的对应关系是1:1的,线程的调度权是由操作系统控制的。 为什么java的线程状态与操作系统不一致? JVM线程状态:RUNNAB…

【含开题报告+文档+PPT+源码】基于SSM的景行天下旅游网站的设计与实现

开题报告 随着互联网的快速发展,旅游业也逐渐进入了数字化时代。作为一个旅游目的地,云浮市意识到了互联网在促进旅游业发展方面的巨大潜力。为了更好地推广云浮的旅游资源,提高旅游服务质量,云浮市决定开发一个专门的旅游网站。…

【红日安全】vulnstack (一)

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍收藏💗支持一下哦 【红日安全】vulnstack (一) 靶场搭建靶场渗透明确目标信息收集phpadmin后台getshell 靶场搭建 靶场下载…

IP报文格式、IPv6概述

IPv4报文格式 IPv4报文首部长度至少为20字节(没有可选字段和填充的情况下),下面来逐一介绍首部各个字段的含义 Version版本:表示采用哪一种具体的IP协议,对于IPv4来说该字段就填充4以表示,如果是IPv6就填充6IHL首部长度&#xff…

网络资源模板--Android Studio 实现简易计算器App

目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 一、项目演示 网络资源模板--基于Android studio 实现的简易计算器 二、项目测试环境 三、项目详情 动态绑定按钮: 使用循环遍历 buttons 数组,根据动态生成的按钮 ID (btn_0, …

SQL进阶技巧:如何删除第N次连续出现NULL值所存在的行?

目录 0 场景描述 1 数据准备 2 问题分析 问题拓展:如何删除第2次、第3次、第N次连续出现NULL值所在的行? 3 小结 0 场景描述 有下面的场景: 我们希望删除某id中连续存在NULL值的所有行,但是保留第一次出现不为NULL值的以下所有存在NULL值的行。具体如下图所示: 如…

iframe的使用详解

目录 一、基本概念和语法 二、优点 1.内容整合与复用: 2.独立的浏览环境: 3.跨域数据展示: 三、缺点 1.可访问性问题: 2.性能问题: 3.安全风险: 四、替代方案 1.使用JavaScript框架进行组件化开…

Unity开发Hololens项目

Unity打包Hololens设备 目录Visual Studio2019 / Visual Studio2022 远端部署设置Visual Studio2019 / Visual Studio2022 USB部署设置Hololens设备如何查找自身IPHololens设备门户Unity工程内的打包设置 目录 记录下自己做MR相关:Unity和HoloLens设备的历程。 Vi…

大规模多传感器滑坡检测数据集,利用landsat,哨兵2,planet,无人机图像等多种传感器采集数据共2w余副图像,mask准确标注滑坡位置

大规模多传感器滑坡检测数据集,利用landsat,哨兵2,planet,无人机图像等多种传感器采集数据共2w余副图像,mask准确标注滑坡位置 大规模多传感器滑坡检测数据集介绍 数据集概述 名称:大规模多传感器滑坡检测…

Python | Leetcode Python题解之第491题非递减子序列

题目: 题解: class Solution:def findSubsequences(self, nums: List[int]) -> List[List[int]]:def dfs(i, tmp):if i len(nums):if len(tmp) > 2:res.append(tmp[:]) # 拷贝,tmp[:]而非tmpreturn# 选 nums[i]if not tmp or nu…

2d 数字人实时语音聊天对话使用案例;支持asr、llm、tts实时语音交互

参考: https://github.com/lyz1810/live2dSpeek 下载live2dSpeek项目 ## 下载live2dSpeek git clone https://github.com/lyz1810/live2dSpeek cd live2dSpeek-main ## 运行live2dSpeek npm install -g http-server http-server .更改新的index.html页面 index.html

【SQL Server】数据库在新建查询后闪退——解决方案:以管理员的身份运行

我的SQLServer2022之前都是可以用的,隔了好久没有使用,今天要用到去写一些SQL 语句 结果在点击新建查询后闪退了, 经过查询后,解决方案: 以管理员的身份运行后点击新建查询,发现正常了 总结:以…

记一次库版本升级引起程序自动停止

记一次库版本升级引起程序自动停止 最近我们的应用升级了jedis 版本,版本从 2.10.2 升级 到3.8.0。发现我们的任务应用启动后立马自动关闭了。 这就奇怪了,为什么升级个版本,会导致程序启动后自动关闭呢。带着这个疑问我们看下代码。 表现如下&#x…

C语言_指针_进阶

引言:在前面的c语言_指针初阶上,我们了解了简单的指针类型以及使用,下面我们将进入更深层次的指针学习,对指针的理解会有一个极大的提升。从此以后,指针将不再是难点,而是学习底层语言的一把利器。 本章重点…

vr体验馆计时收银软件试用版下载 佳易王VR游戏厅计时计费管理系统使用操作教程

一、前言 【软件试用版资源文件下载可以点击文章最后卡片了解】 vr体验馆计时收银软件试用版下载 佳易王VR游戏厅计时计费管理系统使用操作教程 VR体验馆计时计费软件是专门为VR体验馆设计的管理工具,旨在提高服务效率和客户的满意度。软件能够记录客户使用设备的…

vue组件调用生命周期

《vue基础学习-组件》提到组件传递数据方式: 1. props/$emit 父传子:子组件通过 props 显式声明 自定义 属性,接收父组件的传值。子传父:子组件通过 $emit() 显式声明 自定义 事件,父组件调用自定义事件接收子组件返…

Docker-compose提示specified IP address..configured subnets问题以及Docker容器相关操作记录保存

一、Docker-compose提示user specified IP address is supported only when connecting to networks with user configured subnets 在网上下载的一些docker-compose.yml在执行的时碰到过多次如下报错: ERROR: for 5307e2acb....user specified IP address is supp…

2024.10.17 软考学习笔记

刷题网站: 软考中级软件设计师在线试题、软考解析及答案-51CTO题库-软考在线做题备考工具