【发布时间】:2016-11-22 02:56:03
【问题描述】:
我有一个要分发的 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 和测试:
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
)
【问题讨论】:
-
您的
lib和test目录有__init__.py文件吗? -
是的,他们有。他们一定没有吗?
-
不,因为它们不是包。
find_packages()使用__init__.py文件来检测什么是包。
标签: python python-3.x pip setuptools python-wheel