在可分发的python脚本中导入

在可分发的python脚本中导入,python,python-module,pypi,Python,Python Module,Pypi,我有一个python项目pypypy,包含两个文件:\uuuu main\uuuuuuupy.py和foo.py。 在\uuuu main\uuuuu.py中,我只需通过导入foo进行导入。一切都很好 现在,我想用pypi来分发它。安装模块后,我将使用python-m pypypy执行它。当我这样做时,import语句就不再工作了。然而,import pypypy.foo完成了这项工作 我应该在发布之前更改所有导入,还是有更好的方法?强烈建议使用绝对导入,因为它们在不同的python版本中工作一

我有一个python项目pypypy,包含两个文件:
\uuuu main\uuuuuuupy.py
foo.py
。 在
\uuuu main\uuuuu.py
中,我只需通过
导入foo
进行导入。一切都很好

现在,我想用pypi来分发它。安装模块后,我将使用
python-m pypypy
执行它。当我这样做时,import语句就不再工作了。然而,
import pypypy.foo
完成了这项工作


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

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


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

您使用的是哪种python版本?两者的导入系统不同。选中@hurlenko python 3.7相对于您分发的包,您应该更喜欢导入(比如
import pypypy.foo
)。它在开发环境中工作的原因可能是由于
PYTHONPATH
操作。例如,Pycharm自动设置向PYTHONPATH添加内容和源根。此外,当您运行python时,它会自动将当前工作目录添加到PYTHONPATH@hurlenko你想把它作为答案发布吗?