问题描述
我正在使用setup.py打包我的项目。结构如下:
foo -
|
|--foo/
| |
| |--first.py
| |--second.py
| |--...
|--README
|--requirements.txt
|--scripts/
| |
| |-script1.sh
| |-script2.py
|--service.py
|--setup.py
如果我运行当前的setup.py,这符合此处的建议:What is setup.py?
然后在venv/lib/python3.6/site-packages/foo
和venv/lib/python3.6/site-packages/scripts
中可以看到所有的python类。但是缺少service.py。我的问题是如何修改setup.py以将service.py包含到包装中,以便可以在venv/lib/python3.6/site-packages/
上找到service.py?
预先感谢!
解决方法
对于要包含在发行版中的顶级模块,例如service.py
, setuptools 提供了py_modules
参数。
setuptools 文档没有清楚显示,但与 distutils (现已弃用)中的相同:
setuptools.setup(
# ...
py_modules=['service'],# no '.py'
)