python 导入模块失败

python import module fails

custom/
    scripts/
    __init__.py
    file1.py
    utils/
        __init__.py
        utilFile1.py
        utilFile2.py
        utilFile3.py

我有上面的文件结构,我正在努力弄清楚如何在 python 中导入模块。我浏览了具有相同问题的 Whosebug 帖子,但我仍然无法弄清楚为什么我无法让它工作。

我正尝试在 Maya 中导入这些模块,当我 运行 from utils import utilFile1 我明白了 ImportError: cannot import name utilFile1. 运行 from custom.scripts.utils import utilFile1 给我这个错误 ImportError: no module named custom.scripts.utils. 但是如果我 运行 import file1 它导入没有任何错误

我已将 custom/scripts 附加到 sys.path,当它不起作用时,我也尝试附加 custom/scripts/utils,但这也不起作用。基于 Whosebug 上的一些帖子,我看到一些人建议 运行 "python -m" 但我不确定我是否应该 运行 这个或从哪里执行它。

我真的很困惑为什么我根本无法让它工作。

您已按照以下步骤将其设为 python 软件包,

在您的根目录中创建 setup.py, 你的情况

custom/
    setup.py
       scripts/
       ...
       ...

在setup.py

from setuptools import setup, find_packages

setup(
    name='your_package_name',
    description='bla bla bla',
    version='0.0.1-dev',
    install_requires=[

    ],
)

然后点击

pip install -e .

有关详细信息,请参阅 this docs

请更新目录结构如下。 Python 可能不会考虑将自定义作为模块,因为它没有 __init__.py 文件,

custom/
    __init__.py
    scripts/
    __init__.py
    file1.py
    utils/
        __init__.py
        utilFile1.py
        utilFile2.py
        utilFile3.py

Yash 的方法很有效,我相信这就是公司用来设置环境的方法。另一种方法是将脚本路径作为 PYTHONPATH 添加到 maya.env 文件中,而不是使用 sys.path.append。我不确定为什么会有差异,或者是因为我在 windows 上尝试这个,但奇怪的是它在我的情况下有效。