我正在编写一个包供各个项目共享。我的包中有导入语句,例如:
from my_package.module.script import foo
但是,如果我将此包以
my_project
以外的任何名称放置在我的项目中,那么代码将会损坏。有没有办法绕过这个而不依赖相对导入,因为相对导入写起来真的很混乱?
由于您的包被多个项目共享,您可以考虑将此包安装到您的Python环境中。为此,您可以在与 my_project 相同的目录中创建一个名为
setup.py
的文件,内容如下所示:
from setuptools import find_packages, setup
if __name__ == '__main__':
setup(
name='my_package',
version='0.0.1',
description='Short description for your package.',
long_description='Long description for your package.',
long_description_content_type='text/markdown',
author='Your name',
author_email='Your email',
packages=find_packages(),
include_package_data=True,
)
然后运行
python setup.py install
安装此软件包。执行此操作后,所有像from my_package.module.script import foo
这样的导入语句都不再是相对导入,从而避免了这个问题。