gpt4 book ai didi

用于机器学习的 Python 导入

转载 作者:太空宇宙 更新时间:2023-11-04 05:20:45 25 4
gpt4 key购买 nike

我正在为我正在做的新机器学习项目从 R 切换到 Python。

我找到了一种看起来不错的代码架构(下图),但如果我想让我的代码保持干爽,我在实现方面会遇到问题。

enter image description here

所以基本上我有一段代码(函数),我想在不同的模块(即 datafeaturesmodel s 位于 src 模块下)。本例中的代码包含加载和保存数据的函数。

问题是我无法从上层模块导入函数(例如,如果我在 src 文件夹下直接有 functions.py)

我可以在每个模块(datafeaturesmodels)中添加单独的 functions.py,但是会破坏我尝试创建结构良好的项目的目的。

我想我不是唯一遇到这个问题的人。

这通常是如何处理的?

如何创建可供所有嵌套最深的模块使用的共享模块? (我想将相同的模块导入到 make_dataset.pybuild_features.pypredict_model.pytrain_model.py )

编辑:

我也忘了说我使用的是 virtualenv,全局空间不应该被污染。

解决方案:

所以我最终做的是将以下代码添加到我的顶级包 __init__.py 文件中:
导入系统,操作系统
fullPathToProjectFolder = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, fullPathToProjectFolder)
print('__init__ project packege linked: ' + fullPathToProjectFolder)

因此,无论何时您使用主包或子包中的任何内容,它都会自动链接(因为当您导入主包时,__init__.py 文件会自动调用)。并且每个模块都可以相对于顶层包进行导入。

例如:如果 train_model.py 想要导入 build_features.py 它会这样做:

from features import build_features

最佳答案

您需要将您的项目添加到您的系统路径中,以便 python 可以找到该模块。

这可以在 python 中完成:

import sys
sys.path.insert(0, fullPathToProjectFolder)

然后你就可以调用你的模块了

import general_functions

关于用于机器学习的 Python 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40438914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com