我无法将项目正确安装package_fiddler
到我的虚拟环境中。
我发现MANIFEST.in
它负责将 Package_fiddler-0.0.0.tar.gz
执行时生成的非 .py 文件放入其中python setup.py sdist
。
然后我做了:
(virt_envir)$ pip install dist/Package_fiddler-0.0.0.tar.gz
但这并没有将数据文件或软件包安装到/home/username/.virtualenvs/virt_envir/local/lib/python2.7/site-packages
.
我尝试了许多设置参数的配置,package_data
但似乎每次都使用了错误的配置。include_package_data
data_files
哪种配置package_data
和/或include_package_data
和/或data_files
将正确安装package_fiddler
到我的虚拟环境中?
项目树
.
├── MANIFEST.in
├── package_fiddler
│ ├── data
│ │ ├── example.html
│ │ └── stylesheets
│ │ └── example.css
│ └── __init__.py
├── README.rst
└── setup.py
安装程序.py
from setuptools import setup
setup(
name='Package_fiddler',
entry_points={
'console_scripts': ['package_fiddler = package_fiddler:main', ],},
long_description=open('README.rst').read(),
packages=['package_fiddler',])
清单文件
include README.rst
recursive-include package_fiddler/data *
我尝试了哪些 setup.py 配置(上面有代码库)?
配置1
添加:
package_data={"": ['package_fiddler/data/*',]}
配置2
添加:
package_data={"": ['*.html', '*.css', '*.rst']}
配置3
添加:
include_package_data=True
配置4
添加:
package_data={"": ['package_fiddler/data',]}
删除:
packages=['package_fiddler',]
配置5(克里斯的建议)
添加:
package_data={"data": ['package_fiddler/data',]}
删除:
packages=['package_fiddler',]
配置6
添加:
package_data={"": ['package_fiddler/data/*',]}
删除:
packages=['package_fiddler',]
这些配置都导致根本没有文件安装在/home/username/.virtualenvs/virt_envir/local/lib/python2.7/site-packages
.
编辑
Toshio Kuratomi的注意事项:在我的原始帖子中,为了清楚起见,我使用了最简单的树结构,但实际上我的树看起来更像下面的树。对于那棵树,奇怪的是,如果我只是__init__.py
以stylesheets
某种方式放入文件夹中的所有数据文件texts
也正确安装!!!这让我很困惑。
树 2(这会以某种方式正确安装所有数据文件!!)
.
├── MANIFEST.in
├── package_fiddler
│ │── stylesheets
| | ├── __init__.py
| | ├── example.css
| | └── other
| | └── example2.css
| |__ texts
| | ├── example.txt
| | └── other
| | └── example2.txt
│ └── __init__.py
├── README.rst
└── setup.py