【问题标题】:How to Import custom python package?如何导入自定义 python 包?
【发布时间】:2020-06-07 15:58:37
【问题描述】:

我制作了一个小型python包,其结构如下:

my_package/
    |_setup.py
    |___directory/
           |_directory.py
           |__init__.py

setup.py

import setuptools

with open('requirements.txt') as f:
    requirements = f.read().splitlines()

setuptools.setup(name='directory',
version='0.3',
description='Testing installation of Package',
url='#',
author='my name',
author_email='my_mail@gmail.com',
license='MIT',
packages=setuptools.find_packages(),
install_requires=requirements,
zip_safe=False)

__init__.py 为空。要使用我的包,我必须使用以下方法导入它: from directory.directory import Directory 但我想将其导入为 from directory import Directory。我必须做什么才能以这种方式导入它?

运行python3 setup.py sdist bdist_wheel后,下面是SOURCES.txt

README.md
setup.py
directory/__init__.py
directory/directory.py
directory.egg-info/PKG-INFO
directory.egg-info/SOURCES.txt
directory.egg-info/dependency_links.txt
directory.egg-info/not-zip-safe
directory.egg-info/requires.txt
directory.egg-info/top_level.txt

【问题讨论】:

    标签: python python-3.x import package


    【解决方案1】:

    您应该在__init__.py 中添加以下行:

    from directory import Directory

    然后每次加载模块时,它会直接将定义的函数Directory导入到文件directory.py中。

    【讨论】:

    • 我在__init__.py 文件中添加了from directory import Directory,导致ImportError: cannot import name 'Directory 从初始化文件中被抛出。
    • 代码应该放在my_package/__init.py__ 中才能正常工作。
    【解决方案2】:

    通过将from .directory import Directory 添加到__init__.py 来解决。 找到解决方案here

    【讨论】:

      猜你喜欢
      • 2017-11-29
      • 2012-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 2012-03-03
      • 2021-10-16
      相关资源
      最近更新 更多