工具 | 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 环境变量中去,而且加在变量的最前面,优先调用我们修改过的代码。

posted @ 2023-07-25 10:44  张Zong在修行  阅读(94)  评论(0编辑  收藏  举报