导入可分发 python 脚本
Imports in distributable python scripts
我有一个 python 项目 pypypy,其中包含 2 个文件:__main__.py
和 foo.py
。
在 __main__.py
中,我只是通过 import foo
进行导入。一切正常。
现在,我想用pypi分发它。安装我的模块后,我用 python -m pypypy
执行它。当我这样做时,导入语句不再起作用。但是 import pypypy.foo
可以完成这项工作。
我应该在分发之前更改我的所有导入还是有更好的方法?
强烈建议使用绝对导入,因为它们在不同的 python 版本中一致。 Check this answer。在您的情况下,您应该更喜欢使用 import pypypy.foo
.
它在您的开发环境中工作的原因可能是因为 PYTHONPATH 操作。例如 Pycharm 自动设置 将内容和源根目录添加到 PYTHONPATH。此外,当您 运行 python 时,它会自动将当前工作目录添加到 PYTHONPATH。
我有一个 python 项目 pypypy,其中包含 2 个文件:__main__.py
和 foo.py
。
在 __main__.py
中,我只是通过 import foo
进行导入。一切正常。
现在,我想用pypi分发它。安装我的模块后,我用 python -m pypypy
执行它。当我这样做时,导入语句不再起作用。但是 import pypypy.foo
可以完成这项工作。
我应该在分发之前更改我的所有导入还是有更好的方法?
强烈建议使用绝对导入,因为它们在不同的 python 版本中一致。 Check this answer。在您的情况下,您应该更喜欢使用 import pypypy.foo
.
它在您的开发环境中工作的原因可能是因为 PYTHONPATH 操作。例如 Pycharm 自动设置 将内容和源根目录添加到 PYTHONPATH。此外,当您 运行 python 时,它会自动将当前工作目录添加到 PYTHONPATH。