Python Setup.py未安装我的软件包\u数据
在Ubuntu16.04和Windows7(PIP18.1,Python2.7.15)上,我遇到了一个问题,我有Python Setup.py未安装我的软件包\u数据,python,pip,setup.py,Python,Pip,Setup.py,在Ubuntu16.04和Windows7(PIP18.1,Python2.7.15)上,我遇到了一个问题,我有包数据,它进入了tar.gz文件,但是当我使用pip安装时,它们没有安装到我的脚本目录中。我在windows上的脚本目录是\Python27\scripts。我还签入了站点包,但文件没有显示在那里。当通过pip安装时,我希望在python脚本旁边显示一个文本文件,我认为使用data\u文件无法实现这一点(根据 ? 我的包结构的所有文件(hello.py,MANIFEST.IN,setu
包数据
,它进入了tar.gz文件,但是当我使用pip安装时,它们没有安装到我的脚本目录中。我在windows上的脚本目录是\Python27\scripts
。我还签入了站点包
,但文件没有显示在那里。当通过pip安装时,我希望在python脚本旁边显示一个文本文件,我认为使用data\u文件
无法实现这一点(根据
?
我的包结构的所有文件(hello.py,MANIFEST.IN,setup.py
)都位于名为fakeapp
的根文件夹中。我希望保留此结构,因为我实际尝试修复的项目具有此结构
我查阅了许多答案并尝试:
- 在回购的根目录中添加一个空的
,但这并没有修复它\uuuuu init\uuuu.py
- 我已尝试添加和删除
,但无效include\u package\u files=True
- 我已经尝试指定
以及package_data={'':['texto.txt']}
将
添加到include texto.txt
中无效清单.in
- :建议使用bdist,这也不起作用
#!/usr/bin/env python
def main():
print('hello world!')
if __name__ == '__main__':
main()
清单1.in:
include texto.txt
我在dist/with中创建了一个tar.gz
python setup.py sdist
我的texto.txt就在那个tarball里
然后我安装了
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
实际上不是包数据,因为它不在包内(包含\uuuu init\uuuuuuuuuuuuuupy的目录),因此它将不会被安装。获取所需内容的最简单方法是重新构造代码,使其安装一个包hello
,而不是一个平面模块hello.py
,其中hello.py
移动到hello/\uuuu init\uuuuuuuuuuuuuuuuupy
并将texto.txt
移动到hello/texto.txt我在帖子中提到,我想保留我的目录结构,但你的解释很有道理-谢谢!在保持平面结构的同时,我绝对没有办法通过pip安装额外的文件吗?@TandyFreeman:唯一的方法是使用数据文件安装()
argument,但pip安装此类文件的方式非常不友好,因此我建议不要使用它。我可能会调查一下,从其他答案来看,数据文件似乎有点乱。但您已经回答了我的问题,所以我将勾选approved。
│ 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