我有一个我要分发的python项目。我阅读了有关如何编写setup.py文件以及如何安装生成的轮子的多个教程:sample project example,setup.py tutorial,wheel doc,wheel install或wheel install
我的项目结构是:
project_name
|_ lib
|_ project_folder
|_ py modules
|_ test
|_ setup.py
|_README.rst
我按照这个python setup.py bdist_wheel
构建我的轮子然后将生成的轮子放到我项目之外的另一个文件夹中并执行pip install my_wheel
。我也尝试了pip install --no-index --find-links=my_wheel project_name
问题在于,当我查看我的python site-packages
文件夹时,而不是:
python folders
project_name
project_name-2.0.0.dist-info
project_name
文件夹分为lib和test:
python folders
lib
project_name-2.0.0.dist-info
test
我不明白为什么我的project_name
不像其他python文件夹那样分组。有人可以帮助我更好地理解吗?
setup.py:
from setuptools import setup, find_packages
from codecs import open
from os import path
root_folder = path.abspath(path.dirname(__file__))
with open(path.join(root_folder, "README.rst"), encoding="utf-8") as f:
long_description = f.read()
setup(
name = "project",
version = "2.0.0",
description = "My project is cool",
long_description = long_description,
packages = find_packages(),
include_package_data = True
)
答案 0 :(得分:0)
find_packages()
根据__init__.py
文件确定包。看来您的lib
和tests
目录中包含__init__.py
个文件。
您的lib
或tests
目录都不是包,请从中删除__init__.py
个文件。这样find_packages()
只会在生成的分布中包含project_folder()
(源代码,二进制代码或方向盘)。