【发布时间】:2015-11-30 04:16:43
【问题描述】:
我正在尝试在 conda 环境中使用 pip install . 安装本地软件包。一切看起来都很好,除了当我运行这个命令时,默认包含 .pyc 文件(我猜这是由于构建过程造成的)。在 MANIFEST.in 中明确排除它们没有帮助。首先,这是一个问题吗? setup.py 其实很简单。主要是,唯一相关的是include_package_data = True,我需要它来包含一些静态文件。
setup.py
from setuptools import setup, find_packages
setup(
...
include_package_data = True,
...
)
这是 MANIFEST.in
MANIFEST.in
recursive-include <my-project>/static *
global-exclude *.pyc
global-exclude .git
另一个问题:我是否应该包含我的测试文件夹 (recursive-include <my-project>/test/ *)
在安装的包中?我有一些使用鼻子和其他客户端测试的测试,这些测试包含在静态文件中。在这种情况下处理测试的推荐方法是什么?
【问题讨论】:
-
第一个问题我不太明白。您正在安装一个软件包并担心
.pyc文件出现在它的安装位置?正常的,.py文件在安装时会被setuptools自动预编译。 -
这就是我的想法,但后来我看到了一些坚持忽略 .pyc 文件的存储库。
-
你能链接一个例子吗?我认为默认安装的唯一东西是传递给
setup()的packages关键字的包中的.py文件。此外,MANIFEST与安装无关,它控制分发(运行python setup.py sdist时存档中包含哪些文件)。 -
当然。来自 Google 的第一个示例:github.com/mitsuhiko/flask/blob/master/MANIFEST.in
-
我认为在这种情况下作者包含了
docs中的everything,然后排除了.pyc和.pyo文件。您不需要对包本身执行此操作。例如。 my project 我只包含.rst文件和来自docs的一个.py文件,工作得很好。
标签: python packaging setuptools