在Ubuntu 16.04和Windows 7(pip 18.1,python 2.7.15)上,我都遇到一个问题,其中我有package data
进入tar.gz文件,但是在安装时它们没有安装到我的脚本目录中我用pip安装。我在Windows上的脚本目录是\Python27\Scripts
。我还签入了site-packages
,文件没有显示在那里。通过pip安装时,我希望在python脚本旁边显示一个文本文件,我认为使用data_files
不能实现这一点(根据
setup.py not installing data files?
我的程序包结构将所有文件(hello.py, MANIFEST.IN, setup.py
)放在一个名为fakeapp
的根文件夹中。我想保留此结构,因为我实际上要修复的项目具有此结构。
我查找了许多答案并尝试过:
在回购的根目录中添加一个空的__init__.py
并不能解决问题。
我尝试添加和删除include_package_files=True
无济于事
我试过指定package_data={'':['texto.txt']}
以及
将include texto.txt
添加到MANIFEST.in
无济于事。
This answer:建议使用bdist,但也没有用。
我确定这是一个重复的问题,但是我无法获得任何有效的解决方案。
所以这是我的测试用例:
setup.py
from setuptools import setup
setup(
author='hi',
author_email='hi@hi.com',
description="test",
scripts=['hello.py',],
license='MIT',
name='hi',
version='v2018.12.02',
include_package_data=True
)
hello.py:
#!/usr/bin/env python
def main():
print('hello world!')
if __name__ == '__main__':
main()
清单在:
include texto.txt
我在dist /中创建了一个tar.gz
python setup.py sdist
我的texto.txt在那个压缩包中。
然后我安装了
pip install dist\hi-2018.12.2.tar.gz
只有
hello.py
进入C:\Python2.7\Scripts
我究竟做错了什么?
目录树:
│ hello.py
│ MANIFEST.in
│ setup.py
│ texto.txt
│
├───dist
│ hi-2018.12.2.tar.gz
│
└───hi.egg-info
dependency_links.txt
PKG-INFO
SOURCES.txt
top_level.txt
最佳答案
texto.txt
实际上不是包数据,因为它不在包内(带有__init__.py
的目录),因此不会被安装。获得所需内容的最简单方法是重组代码,以便安装包hello
而不是平面模块hello.py
,将hello.py
移至hello/__init__.py
,将texto.txt
移至。
关于python - Setup.py没有安装我的package_data,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53925027/