我在将 Python 包上传到 PyPI 时遇到问题。我已遵循使用 python setup.py sdist 和 python setup.py bdist_wheel 创建分发包的标准步骤,但 PyPI 上生成的包具有意外的目录结构。
我有一个具有以下结构的Python项目:
my_project/
|-- setup.py
|-- my_module/
|-- __init__.py
|-- ...
运行 python setup.py sdist 和 python setup.py bdist_wheel 后,dist 目录同时包含一个 .tar.gz 文件和一个 .whl 文件。
使用 twine upload dist/* 上传到 PyPI 后,包已成功上传,但当用户下载并安装它时,他们在站点包中发现了意外的目录结构:
site-packages/
|-- my_project-1.0.0.dist-info/
|-- ...
我该怎么办?
编辑:
my_project/
|-- setup.py
|-- my_module/
|-- __init__.py
|-- screen.py
|-- test.txt
|-- my_module/
|-- dependency_links.txt
|-- PKG-INFO
|-- requires.txt
|-- SOURCES.txt
|-- top_level.txt
|-- dist/
|-- my_module-1.1.5-py3-none-any.whl
|-- my_module-1.1.5.tar.gz
|-- build/
|-- bdist.win-amd64
|-- lib/
|-- __init__.py
|-- screen.py
site-packages/
|-- my_project-1.0.0.dist-info/
|-- INSTALLER
|-- METADATA
|-- RECORD
|-- REQUESTED
|-- top_level.txt
|-- WHEEL
我想通了。我必须将其包含在我的
setup.py
文件中:
package_data={
'my_module': ['__init__.py', 'screen.py'],
},