首页 > 其他分享 >工具 | Pycharm中自己的项目代码不执行

工具 | Pycharm中自己的项目代码不执行

时间:2023-07-25 10:57:19浏览次数:25  
标签:PYTHONPATH 代码 修改 thumt path Pycharm 工具 添加 环境变量

我的项目中使用了thumt的包,但是放在了自己的项目代码中,而且进行修改了,但是它不执行项目中修改的

如果对thumt包进行了修改,但是在项目中并没有生效,可能是因为您在导入thumt包时使用了相对路径或者系统默认的搜索路径,而不是使用您修改后的thumt包。

为了确保使用您修改后的thumt包,您需要将修改后的包所在的路径添加到您的PYTHONPATH环境变量中,或者在导入thumt包时指定它的路径,例如:

import sys
sys.path.append('/path/to/modified/thumt')
import thumt

这将确保您导入的是您修改后的thumt包,而不是原始的thumt包。

另外,如果您的修改涉及到了thumt包中的编译代码,您需要重新编译该代码才能使修改生效。

如何将修改后的包所在的路径添加到PYTHONPATH环境变量中?

将修改后的包所在的路径添加到PYTHONPATH环境变量中有以下几种方法:

  1. 在命令行中设置PYTHONPATH环境变量,例如:

    export PYTHONPATH=/path/to/modified/thumt:$PYTHONPATH
    
    这将在当前shell会话中将PYTHONPATH设置为`/path/to/modified/thumt`,并将原来的PYTHONPATH值添加到末尾。
    
  2. 在项目代码中设置PYTHONPATH环境变量,例如:

    import os
    import sys
    
    # 将修改后的包所在的路径添加到PYTHONPATH环境变量中
    sys.path.insert(0, '/path/to/modified/thumt')
    os.environ['PYTHONPATH'] = '/path/to/modified/thumt:' + os.environ.get('PYTHONPATH', '')
    
    # 导入修改后的thumt包
    import thumt
    
    这将在代码中设置PYTHONPATH环境变量,将修改后的包所在的路径添加到PYTHONPATH环境变量的开头,并将原来的PYTHONPATH值添加到末尾。
    
  3. 在系统的环境变量中设置PYTHONPATH环境变量,例如:

    export PYTHONPATH=/path/to/modified/thumt:$PYTHONPATH
    

    这将在系统的环境变量中设置PYTHONPATH环境变量,将修改后的包所在的路径添加到PYTHONPATH环境变量的开头,并将原来的PYTHONPATH值添加到末尾。

    这种方法需要重新打开一个新的shell会话才能使设置生效。

pycharm如何做

在 PyCharm 中设置 PYTHONPATH 环境变量可以通过以下步骤进行:

  1. 打开 PyCharm,选择需要设置 PYTHONPATH 的项目。

  2. 点击菜单栏中的 "Run",选择 "Edit Configurations"。

  3. 在弹出的 "Run/Debug Configurations" 窗口中,选择 "Python",然后找到 "Environment variables" 选项。

  4. 在 "Environment variables" 中添加 PYTHONPATH 环境变量,例如:

    PYTHONPATH=/path/to/modified/thumt
    
    注意,如果您的 PYTHONPATH 环境变量已经设置了其他值,需要在这里将其一并添加,例如:
    
    ```
    PYTHONPATH=/path/to/modified/thumt:/other/path/to/add:$PYTHONPATH
    ```
    
  5. 点击 "OK" 保存修改。

现在,您可以重新运行项目,并使用修改后的 thumt 包了。

总结:

  • 在我们使用第三方库的时候,但是我们修改了第三方库的源码供自己的项目使用。但是我们发现

    import thumt.data as data
    

    这样的导入方法是我们依赖的第三方的库函数。但是我们有了和第三方库函数个同名的项目目录,这样的导入方式只能是执行的第三方库的函数,而不是我们修改过后的同名库,这样就出现了错误。

  • 若我们想使用修改过后的函数,我们得把这样的导入改成

    import ../thumt.data as data
    

    这样的相对导入,但是这样有些不切实际,因为你修改的第三方库你都得按照你的项目去修改,所以这种方法行不通的。我们在不修改的情况下可不可以使用我们修改过的代码吗?答案是可以的。

  • 我们只需要在环境变量中添加PYTHONPATH 环境变量,把我们修改的thumt项目位置加入到PYTHONPATH 环境变量中去,而且加在变量的最前面,优先调用我们修改过的代码。

标签:PYTHONPATH,代码,修改,thumt,path,Pycharm,工具,添加,环境变量
From: https://www.cnblogs.com/zhangxuegold/p/17579189.html

相关文章

  • SAFe敏捷工具实施SAFe流程
    ​Leangoo领歌覆盖了敏捷项目研发全流程,包括小型团队敏捷开发,ScrumofScrums大规模敏捷。随着SAFe的越来越普及,Leangoo本次上线提供了完整的SAFe框架功能,包括:ProgramBacklog,PI规划,迭代规划,迭代执行,迭代统计等。什么是SAFe?SAFe(ScaledAgileFramework)是全球运用最广泛的大规......
  • 什么是静态代码分析?静态代码分析概述
    静态分析可帮助面临压力的开发团队。高质量的版本需要按时交付。需要满足编码和合规性标准。错误不是一种选择。 这就是开发团队使用静态分析工具/源代码分析工具的原因。在这里,我们将讨论静态分析和使用静态代码分析器的好处,以及静态分析的局限性。 什么是静态分析? 静态......
  • 如何写出无法维护的代码
    酷壳--CoolShell地址:https://coolshell.cn/articles/4758.html如何写出无法维护的代码酷壳里有很多我觉得很不错的文章,但是访问量最大的却是那篇《6个变态的HelloWorld》,和它能在本站右边栏“全站热门”中出现的还有“如何加密源代码”,以及编程真难啊等这样的文章。可见本站的读......
  • 在线传单制作工具介绍
    让我们谈谈如何制作成功的商业传单进行促销。宣传传单的主要目的是吸引注意力。无论您是要开设商店还是想吸引新客户,您都需要醒目的且时尚的促销传单。使用传单的原因很多,无论您是要宣传活动,为新业务或其他目的建立品牌知名度。无论您为什么要创建传单,都需要记住一件事–传单设计。......
  • 免费的云端软件开发绘图工具
    为您的软件开发项目寻找免费的图表工具。无论您使用的是更正式的方法,如UML还是敏捷方法,visualparadigmonline都是您理想的基于云的环境的绘图工具,但它对于个人使用是完全免费的。它有最广泛的图表种类,提供了200多种不同的图表类型,从UML图表、ERD、不同风格的DFD,如SSADMPeterCoad......
  • Windows Defender 防火墙 无法启用 错误代码0x80070422
    打开注册表(win+R打开运行框,输入regedt32回车),定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MpsSvc,start的数值数据修改为2,重启生效。 ......
  • PHP代码优化技巧
    1、用单引号代替双引号来包含字符串,这样做会更快一些。 因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。......
  • Android时间工具类
    ✍️作者简介:沫小北(专注于Android、Web、TCP/IP等技术方向)......
  • android 软件更新代码
     AndroidF#    应用软件经常会因为功能的增加而升级,升级经常是在客户端给用户升级的提示,然后用户下载最新的apk程序包,软件升级过程大多数需要在线完成。      android在线安装apk程序包,主要用到系统自带的apk安装器进行安装。用到系统自带的apk安装器安装......
  • 傻瓜式零代码 临床预测模型构建、评价、验证LogisticApp
    傻瓜式临床预测模型软件LogisticApp无需复杂冗长的代码只需要鼠标点点,即可轻松完成3分SCI支持Windows32位、64位,Macintel芯片、M1/M2芯片视频教程见B站up主:R语言临床预测模型1LogisticApp简介傻瓜式零代码Logistic临床预测模型构建、评价、验证。......