pypi 包导入 python 文件而不是包
pypi package imports python file instead of package
在我最近上传的 pypi 包 pip install package_name
之后
安装后直接导入python文件名,
我想像下面这样使用
import package_name
或 from package_name import python_file
但这行不通
import python_file
连包安装名称为package_name
pypi 包名 package_name
和
我的目录结构如下
- package_name
setup.py
文件夹1
- python_file
在 setup.py 中,我使用了 package_dir={'': 'folder_1'}
但即使 import folder_1
或 from 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
在我最近上传的 pypi 包 pip install package_name
之后
安装后直接导入python文件名,
我想像下面这样使用
import package_name
或 from package_name import python_file
但这行不通
import python_file
连包安装名称为package_name
pypi 包名 package_name
和
我的目录结构如下
- package_name
setup.py
文件夹1
- python_file
在 setup.py 中,我使用了 package_dir={'': 'folder_1'}
但即使 import folder_1
或 from 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