我的项目中使用了thumt的包,但是放在了自己的项目代码中,而且进行修改了,但是它不执行项目中修改的
如果对thumt包进行了修改,但是在项目中并没有生效,可能是因为您在导入thumt包时使用了相对路径或者系统默认的搜索路径,而不是使用您修改后的thumt包。
为了确保使用您修改后的thumt包,您需要将修改后的包所在的路径添加到您的PYTHONPATH环境变量中,或者在导入thumt包时指定它的路径,例如:
import sys
sys.path.append('/path/to/modified/thumt')
import thumt
这将确保您导入的是您修改后的thumt包,而不是原始的thumt包。
另外,如果您的修改涉及到了thumt包中的编译代码,您需要重新编译该代码才能使修改生效。
如何将修改后的包所在的路径添加到PYTHONPATH环境变量中?
将修改后的包所在的路径添加到PYTHONPATH环境变量中有以下几种方法:
-
在命令行中设置PYTHONPATH环境变量,例如:
export PYTHONPATH=/path/to/modified/thumt:$PYTHONPATH 这将在当前shell会话中将PYTHONPATH设置为`/path/to/modified/thumt`,并将原来的PYTHONPATH值添加到末尾。
-
在项目代码中设置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值添加到末尾。
-
在系统的环境变量中设置PYTHONPATH环境变量,例如:
export PYTHONPATH=/path/to/modified/thumt:$PYTHONPATH
这将在系统的环境变量中设置PYTHONPATH环境变量,将修改后的包所在的路径添加到PYTHONPATH环境变量的开头,并将原来的PYTHONPATH值添加到末尾。
这种方法需要重新打开一个新的shell会话才能使设置生效。
pycharm如何做
在 PyCharm 中设置 PYTHONPATH 环境变量可以通过以下步骤进行:
-
打开 PyCharm,选择需要设置 PYTHONPATH 的项目。
-
点击菜单栏中的 "Run",选择 "Edit Configurations"。
-
在弹出的 "Run/Debug Configurations" 窗口中,选择 "Python",然后找到 "Environment variables" 选项。
-
在 "Environment variables" 中添加 PYTHONPATH 环境变量,例如:
PYTHONPATH=/path/to/modified/thumt 注意,如果您的 PYTHONPATH 环境变量已经设置了其他值,需要在这里将其一并添加,例如: ``` PYTHONPATH=/path/to/modified/thumt:/other/path/to/add:$PYTHONPATH ```
-
点击 "OK" 保存修改。
现在,您可以重新运行项目,并使用修改后的 thumt 包了。
标签:PYTHONPATH,代码,修改,thumt,path,Pycharm,工具,添加,环境变量 From: https://www.cnblogs.com/zhangxuegold/p/17579189.html总结:
在我们使用第三方库的时候,但是我们修改了第三方库的源码供自己的项目使用。但是我们发现
import thumt.data as data
这样的导入方法是我们依赖的第三方的库函数。但是我们有了和第三方库函数个同名的项目目录,这样的导入方式只能是执行的第三方库的函数,而不是我们修改过后的同名库,这样就出现了错误。
若我们想使用修改过后的函数,我们得把这样的导入改成
import ../thumt.data as data
这样的相对导入,但是这样有些不切实际,因为你修改的第三方库你都得按照你的项目去修改,所以这种方法行不通的。我们在不修改的情况下可不可以使用我们修改过的代码吗?答案是可以的。
我们只需要在环境变量中添加PYTHONPATH 环境变量,把我们修改的
thumt
项目位置加入到PYTHONPATH 环境变量中去,而且加在变量的最前面,优先调用我们修改过的代码。