导入可分发 python 脚本

Imports in distributable python scripts

我有一个 python 项目 pypypy,其中包含 2 个文件:__main__.pyfoo.py。 在 __main__.py 中,我只是通过 import foo 进行导入。一切正常。

现在,我想用pypi分发它。安装我的模块后,我用 python -m pypypy 执行它。当我这样做时,导入语句不再起作用。但是 import pypypy.foo 可以完成这项工作。

我应该在分发之前更改我的所有导入还是有更好的方法?

强烈建议使用绝对导入,因为它们在不同的 python 版本中一致。 Check this answer。在您的情况下,您应该更喜欢使用 import pypypy.foo.

它在您的开发环境中工作的原因可能是因为 PYTHONPATH 操作。例如 Pycharm 自动设置 将内容和源根目录添加到 PYTHONPATH。此外,当您 运行 python 时,它会自动将当前工作目录添加到 PYTHONPATH。