未知名称包中的绝对导入

问题描述 投票:0回答:1

我正在编写一个包供各个项目共享。我的包中有导入语句,例如:

from my_package.module.script import foo

但是,如果我将此包以

my_project
以外的任何名称放置在我的项目中,那么代码将会损坏。有没有办法绕过这个而不依赖相对导入,因为相对导入写起来真的很混乱?

python import package
1个回答
0
投票

由于您的包被多个项目共享,您可以考虑将此包安装到您的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
这样的导入语句都不再是相对导入,从而避免了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.