Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Setup.py未安装我的软件包\u数据_Python_Pip_Setup.py - Fatal编程技术网

Python Setup.py未安装我的软件包\u数据

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

在Ubuntu16.04和Windows7(PIP18.1,Python2.7.15)上,我遇到了一个问题,我有
包数据
,它进入了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,这也不起作用
我确信这是一个重复的问题,但我一直无法找到任何解决方案

下面是我的测试用例: setup.py

hello.py:

#!/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