pypi 包导入 python 文件而不是包

pypi package imports python file instead of package

在我最近上传的 pypi 包 pip install package_name 之后 安装后直接导入python文件名, 我想像下面这样使用

import package_namefrom package_name import python_file

但这行不通 import python_file连包安装名称为package_name

pypi 包名 package_name 和 我的目录结构如下

在 setup.py 中,我使用了 package_dir={'': 'folder_1'}

但即使 import folder_1from folder_1 import python_file 也没有用。

我试过如果在folder_1里面加上__init__.py,没解决

我一直在关注 Mark Smith - 在 PyPI 上发布一个(完美的)Python 包, 这是这样说的,但不知道发生了什么,我该如何解决??

所以你实际做的是告诉 python 根文件夹是 folder_1

这不是你想要的。

你只需要告诉 folder_1(或者实际上用 package_name 替换它,见下文)是一个包并使用以下方式声明它:

packages = {'folder1'}.

通常,人们不会这样做,而是让函数 find_packages() 为他们完成 packages=find_packages()

的工作

此外,包文件夹应包含 __init__.py

得出结论,您需要如下所示的文件夹结构并使用 find_packages()

项目名和它单个主包同名即可,甚至流行选择。

  • project_name
    • setup.py
    • package_name
      • __init__.py
      • python_file.py