在可分发的python脚本中导入
我有一个python项目pypypy,包含两个文件:在可分发的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版本中工作一
\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你想把它作为答案发布吗?