这是我删除的非代码内容的精简版setup.py脚本:
#!/usr/bin/env python
from distutils.core import setup
from whyteboard.misc import meta
setup(
name = 'Whyteboard',
version = meta.version,
packages = ['whyteboard', 'whyteboard.gui', 'whyteboard.lib', 'whyteboard.lib.pubsub',
'whyteboard.lib.pubsub.core', 'whyteboard.lib.pubsub.utils', 'whyteboard.misc'],
py_modules = ['whyteboard'],
scripts = ['whyteboard.py'],
)
Run Code Online (Sandbox Code Playgroud)
MANIFEST.in:
include *.txt
include whyteboard-help/*.*
recursive-include locale *.mo
recursive-include images *.png
Run Code Online (Sandbox Code Playgroud)
当我运行"python setup.py install sdist"时,我得到一个很好的.tar.gz,带有"whyteboard-0.41"根文件夹,里面有我的locale/images /和whyteboard-help/folders.这也有我的whyteboard.py脚本,它从whyteboard源包中启动我的程序.
所以:
whyteboard/
??? locale/
??? images
??? whyteboard-help/
??? whyteboard/
? ??? __init__.py
? ??? other packages etc
??? whyteboard.py
??? README
??? setup.py
??? CHANGELOG
Run Code Online (Sandbox Code Playgroud)
这反映了我的程序的来源,一切应该是怎样的,并且是正确的.
但是,当我运行"python setup.py install"时,我的数据文件都没有写入 …
我有一个带有标准setup.py安装程序的Python包,但我不能在我的生活中让它在某个地方安装一些预先定义的配置文件到我的setup-)函数这样调用:
setup(
name='Hydrant',
version=version,
description=long_description,
author='Scott Frazer',
author_email='scott.d.frazer@gmail.com',
packages=['hydrant'],
package_data={'hydrant': ['sql/*.sql', 'hydrant.conf', 'hydrant.deploy']},
data_files=[('config', ['hydrant/hydrant.conf'])],
install_requires=[
"xtermcolor>=1.0.3",
"pyyaml",
"pymysql",
"jprops"
],
entry_points={
'console_scripts': [
'hydrant = hydrant.Main:Cli'
]
},
test_suite='hydrant.test',
license = "MIT",
)
Run Code Online (Sandbox Code Playgroud)
我正在尝试package_data,data_files但他们似乎什么也没做.我正在使用命令行安装到虚拟环境中:
$ python setup.py install
Run Code Online (Sandbox Code Playgroud)
任何见解将不胜感激!